aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2024-07-02 15:52:35 -0400
committerKevin Newton <kddnewton@gmail.com>2024-07-11 14:25:54 -0400
commitaca42a24783e3a7d17eafb43a031e397bfb70323 (patch)
treeb306703c25c49b84543345536e9f252642cc5a4f
parent687be43c79a6fb119e52b09ea561cf958a9aabf2 (diff)
downloadruby-aca42a24783e3a7d17eafb43a031e397bfb70323.tar.gz
[ruby/prism] Expose common flags in inspect output
https://github.com/ruby/prism/commit/d0143865c2
-rw-r--r--prism/templates/lib/prism/inspect_visitor.rb.erb4
-rwxr-xr-xprism/templates/template.rb4
-rw-r--r--test/prism/snapshots/alias.txt63
-rw-r--r--test/prism/snapshots/arithmetic.txt22
-rw-r--r--test/prism/snapshots/arrays.txt251
-rw-r--r--test/prism/snapshots/begin_ensure.txt59
-rw-r--r--test/prism/snapshots/begin_rescue.txt159
-rw-r--r--test/prism/snapshots/blocks.txt117
-rw-r--r--test/prism/snapshots/boolean_operators.txt5
-rw-r--r--test/prism/snapshots/booleans.txt4
-rw-r--r--test/prism/snapshots/break.txt118
-rw-r--r--test/prism/snapshots/case.txt113
-rw-r--r--test/prism/snapshots/classes.txt71
-rw-r--r--test/prism/snapshots/command_method_call.txt128
-rw-r--r--test/prism/snapshots/comments.txt20
-rw-r--r--test/prism/snapshots/constants.txt273
-rw-r--r--test/prism/snapshots/dash_heredocs.txt57
-rw-r--r--test/prism/snapshots/defined.txt19
-rw-r--r--test/prism/snapshots/dos_endings.txt24
-rw-r--r--test/prism/snapshots/dstring.txt26
-rw-r--r--test/prism/snapshots/dsym_str.txt4
-rw-r--r--test/prism/snapshots/embdoc_no_newline_at_end.txt2
-rw-r--r--test/prism/snapshots/emoji_method_calls.txt6
-rw-r--r--test/prism/snapshots/endless_methods.txt20
-rw-r--r--test/prism/snapshots/endless_range_in_conditional.txt19
-rw-r--r--test/prism/snapshots/for.txt67
-rw-r--r--test/prism/snapshots/global_variables.txt72
-rw-r--r--test/prism/snapshots/hashes.txt68
-rw-r--r--test/prism/snapshots/heredoc.txt4
-rw-r--r--test/prism/snapshots/heredoc_with_carriage_returns.txt4
-rw-r--r--test/prism/snapshots/heredoc_with_comment.txt4
-rw-r--r--test/prism/snapshots/heredoc_with_escaped_newline_at_start.txt10
-rw-r--r--test/prism/snapshots/heredoc_with_trailing_newline.txt4
-rw-r--r--test/prism/snapshots/heredocs_leading_whitespace.txt22
-rw-r--r--test/prism/snapshots/heredocs_nested.txt30
-rw-r--r--test/prism/snapshots/heredocs_with_ignored_newlines.txt24
-rw-r--r--test/prism/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt4
-rw-r--r--test/prism/snapshots/if.txt114
-rw-r--r--test/prism/snapshots/indented_file_end.txt3
-rw-r--r--test/prism/snapshots/integer_operations.txt196
-rw-r--r--test/prism/snapshots/keyword_method_names.txt26
-rw-r--r--test/prism/snapshots/keywords.txt16
-rw-r--r--test/prism/snapshots/lambda.txt23
-rw-r--r--test/prism/snapshots/method_calls.txt428
-rw-r--r--test/prism/snapshots/methods.txt289
-rw-r--r--test/prism/snapshots/modules.txt36
-rw-r--r--test/prism/snapshots/multi_write.txt34
-rw-r--r--test/prism/snapshots/newline_terminated.txt36
-rw-r--r--test/prism/snapshots/next.txt99
-rw-r--r--test/prism/snapshots/nils.txt13
-rw-r--r--test/prism/snapshots/non_alphanumeric_methods.txt44
-rw-r--r--test/prism/snapshots/not.txt23
-rw-r--r--test/prism/snapshots/numbers.txt78
-rw-r--r--test/prism/snapshots/patterns.txt779
-rw-r--r--test/prism/snapshots/procs.txt60
-rw-r--r--test/prism/snapshots/range_begin_open_exclusive.txt6
-rw-r--r--test/prism/snapshots/range_begin_open_inclusive.txt6
-rw-r--r--test/prism/snapshots/range_end_open_exclusive.txt6
-rw-r--r--test/prism/snapshots/range_end_open_inclusive.txt6
-rw-r--r--test/prism/snapshots/ranges.txt175
-rw-r--r--test/prism/snapshots/regex.txt97
-rw-r--r--test/prism/snapshots/regex_char_width.txt11
-rw-r--r--test/prism/snapshots/repeat_parameters.txt44
-rw-r--r--test/prism/snapshots/rescue.txt80
-rw-r--r--test/prism/snapshots/return.txt70
-rw-r--r--test/prism/snapshots/seattlerb/BEGIN.txt6
-rw-r--r--test/prism/snapshots/seattlerb/TestRubyParserShared.txt89
-rw-r--r--test/prism/snapshots/seattlerb/__ENCODING__.txt3
-rw-r--r--test/prism/snapshots/seattlerb/alias_gvar_backref.txt5
-rw-r--r--test/prism/snapshots/seattlerb/alias_resword.txt7
-rw-r--r--test/prism/snapshots/seattlerb/and_multi.txt7
-rw-r--r--test/prism/snapshots/seattlerb/aref_args_assocs.txt9
-rw-r--r--test/prism/snapshots/seattlerb/aref_args_lit_assocs.txt11
-rw-r--r--test/prism/snapshots/seattlerb/args_kw_block.txt6
-rw-r--r--test/prism/snapshots/seattlerb/array_line_breaks.txt6
-rw-r--r--test/prism/snapshots/seattlerb/array_lits_trailing_calls.txt10
-rw-r--r--test/prism/snapshots/seattlerb/assoc__bare.txt7
-rw-r--r--test/prism/snapshots/seattlerb/assoc_label.txt9
-rw-r--r--test/prism/snapshots/seattlerb/attr_asgn_colon_id.txt7
-rw-r--r--test/prism/snapshots/seattlerb/attrasgn_array_arg.txt12
-rw-r--r--test/prism/snapshots/seattlerb/attrasgn_array_lhs.txt14
-rw-r--r--test/prism/snapshots/seattlerb/attrasgn_primary_dot_constant.txt6
-rw-r--r--test/prism/snapshots/seattlerb/backticks_interpolation_line.txt7
-rw-r--r--test/prism/snapshots/seattlerb/bang_eq.txt8
-rw-r--r--test/prism/snapshots/seattlerb/bdot2.txt10
-rw-r--r--test/prism/snapshots/seattlerb/bdot3.txt10
-rw-r--r--test/prism/snapshots/seattlerb/begin_ensure_no_bodies.txt4
-rw-r--r--test/prism/snapshots/seattlerb/begin_rescue_else_ensure_bodies.txt18
-rw-r--r--test/prism/snapshots/seattlerb/begin_rescue_else_ensure_no_bodies.txt6
-rw-r--r--test/prism/snapshots/seattlerb/begin_rescue_ensure_no_bodies.txt5
-rw-r--r--test/prism/snapshots/seattlerb/block_arg__bare.txt4
-rw-r--r--test/prism/snapshots/seattlerb/block_arg_kwsplat.txt7
-rw-r--r--test/prism/snapshots/seattlerb/block_arg_opt_arg_block.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_arg_opt_splat.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_arg_optional.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_arg_scope.txt7
-rw-r--r--test/prism/snapshots/seattlerb/block_arg_scope2.txt7
-rw-r--r--test/prism/snapshots/seattlerb/block_arg_splat_arg.txt7
-rw-r--r--test/prism/snapshots/seattlerb/block_args_kwargs.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_args_no_kwargs.txt8
-rw-r--r--test/prism/snapshots/seattlerb/block_args_opt1.txt14
-rw-r--r--test/prism/snapshots/seattlerb/block_args_opt2.txt11
-rw-r--r--test/prism/snapshots/seattlerb/block_args_opt2_2.txt17
-rw-r--r--test/prism/snapshots/seattlerb/block_args_opt3.txt18
-rw-r--r--test/prism/snapshots/seattlerb/block_call_defn_call_block_call.txt12
-rw-r--r--test/prism/snapshots/seattlerb/block_call_dot_op2_brace_block.txt14
-rw-r--r--test/prism/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt14
-rw-r--r--test/prism/snapshots/seattlerb/block_call_operation_colon.txt5
-rw-r--r--test/prism/snapshots/seattlerb/block_call_operation_dot.txt5
-rw-r--r--test/prism/snapshots/seattlerb/block_call_paren_call_block_call.txt11
-rw-r--r--test/prism/snapshots/seattlerb/block_command_operation_colon.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_command_operation_dot.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_decomp_anon_splat_arg.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_decomp_arg_splat.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_decomp_arg_splat_arg.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_decomp_splat.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_kw.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_kw__required.txt7
-rw-r--r--test/prism/snapshots/seattlerb/block_kwarg_lvar.txt11
-rw-r--r--test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt13
-rw-r--r--test/prism/snapshots/seattlerb/block_opt_arg.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_opt_splat.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_optarg.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_paren_splat.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_reg_optarg.txt9
-rw-r--r--test/prism/snapshots/seattlerb/block_return.txt7
-rw-r--r--test/prism/snapshots/seattlerb/block_scope.txt6
-rw-r--r--test/prism/snapshots/seattlerb/block_splat_reg.txt7
-rw-r--r--test/prism/snapshots/seattlerb/bug169.txt6
-rw-r--r--test/prism/snapshots/seattlerb/bug179.txt6
-rw-r--r--test/prism/snapshots/seattlerb/bug190.txt4
-rw-r--r--test/prism/snapshots/seattlerb/bug191.txt18
-rw-r--r--test/prism/snapshots/seattlerb/bug202.txt8
-rw-r--r--test/prism/snapshots/seattlerb/bug236.txt13
-rw-r--r--test/prism/snapshots/seattlerb/bug290.txt6
-rw-r--r--test/prism/snapshots/seattlerb/bug_187.txt9
-rw-r--r--test/prism/snapshots/seattlerb/bug_215.txt5
-rw-r--r--test/prism/snapshots/seattlerb/bug_249.txt15
-rw-r--r--test/prism/snapshots/seattlerb/bug_and.txt9
-rw-r--r--test/prism/snapshots/seattlerb/bug_args__19.txt11
-rw-r--r--test/prism/snapshots/seattlerb/bug_args_masgn.txt8
-rw-r--r--test/prism/snapshots/seattlerb/bug_args_masgn2.txt9
-rw-r--r--test/prism/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt9
-rw-r--r--test/prism/snapshots/seattlerb/bug_call_arglist_parens.txt30
-rw-r--r--test/prism/snapshots/seattlerb/bug_case_when_regexp.txt8
-rw-r--r--test/prism/snapshots/seattlerb/bug_comma.txt3
-rw-r--r--test/prism/snapshots/seattlerb/bug_cond_pct.txt6
-rw-r--r--test/prism/snapshots/seattlerb/bug_hash_args.txt10
-rw-r--r--test/prism/snapshots/seattlerb/bug_hash_args_trailing_comma.txt10
-rw-r--r--test/prism/snapshots/seattlerb/bug_hash_interp_array.txt8
-rw-r--r--test/prism/snapshots/seattlerb/bug_masgn_right.txt8
-rw-r--r--test/prism/snapshots/seattlerb/bug_not_parens.txt4
-rw-r--r--test/prism/snapshots/seattlerb/bug_op_asgn_rescue.txt5
-rw-r--r--test/prism/snapshots/seattlerb/call_and.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_arg_assoc.txt11
-rw-r--r--test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt14
-rw-r--r--test/prism/snapshots/seattlerb/call_arg_kwsplat.txt7
-rw-r--r--test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt24
-rw-r--r--test/prism/snapshots/seattlerb/call_args_assoc_trailing_comma.txt11
-rw-r--r--test/prism/snapshots/seattlerb/call_args_command.txt6
-rw-r--r--test/prism/snapshots/seattlerb/call_array_arg.txt12
-rw-r--r--test/prism/snapshots/seattlerb/call_array_block_call.txt6
-rw-r--r--test/prism/snapshots/seattlerb/call_array_lambda_block_call.txt7
-rw-r--r--test/prism/snapshots/seattlerb/call_array_lit_inline_hash.txt11
-rw-r--r--test/prism/snapshots/seattlerb/call_assoc.txt9
-rw-r--r--test/prism/snapshots/seattlerb/call_assoc_new.txt9
-rw-r--r--test/prism/snapshots/seattlerb/call_assoc_new_if_multiline.txt17
-rw-r--r--test/prism/snapshots/seattlerb/call_assoc_trailing_comma.txt9
-rw-r--r--test/prism/snapshots/seattlerb/call_bang_command_call.txt6
-rw-r--r--test/prism/snapshots/seattlerb/call_bang_squiggle.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_begin_call_block_call.txt9
-rw-r--r--test/prism/snapshots/seattlerb/call_block_arg_named.txt5
-rw-r--r--test/prism/snapshots/seattlerb/call_carat.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_colon2.txt5
-rw-r--r--test/prism/snapshots/seattlerb/call_colon_parens.txt6
-rw-r--r--test/prism/snapshots/seattlerb/call_div.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_dot_parens.txt6
-rw-r--r--test/prism/snapshots/seattlerb/call_env.txt4
-rw-r--r--test/prism/snapshots/seattlerb/call_eq3.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_gt.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_kwsplat.txt7
-rw-r--r--test/prism/snapshots/seattlerb/call_leading_dots.txt4
-rw-r--r--test/prism/snapshots/seattlerb/call_leading_dots_comment.txt4
-rw-r--r--test/prism/snapshots/seattlerb/call_lt.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_lte.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_not.txt6
-rw-r--r--test/prism/snapshots/seattlerb/call_pipe.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_rshift.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_self_brackets.txt7
-rw-r--r--test/prism/snapshots/seattlerb/call_spaceship.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_stabby_do_end_with_block.txt12
-rw-r--r--test/prism/snapshots/seattlerb/call_stabby_with_braces_block.txt12
-rw-r--r--test/prism/snapshots/seattlerb/call_star.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_star2.txt8
-rw-r--r--test/prism/snapshots/seattlerb/call_trailing_comma.txt6
-rw-r--r--test/prism/snapshots/seattlerb/call_trailing_dots.txt4
-rw-r--r--test/prism/snapshots/seattlerb/call_unary_bang.txt6
-rw-r--r--test/prism/snapshots/seattlerb/case_in.txt243
-rw-r--r--test/prism/snapshots/seattlerb/case_in_31.txt14
-rw-r--r--test/prism/snapshots/seattlerb/case_in_37.txt16
-rw-r--r--test/prism/snapshots/seattlerb/case_in_42.txt13
-rw-r--r--test/prism/snapshots/seattlerb/case_in_42_2.txt12
-rw-r--r--test/prism/snapshots/seattlerb/case_in_47.txt15
-rw-r--r--test/prism/snapshots/seattlerb/case_in_67.txt12
-rw-r--r--test/prism/snapshots/seattlerb/case_in_86.txt15
-rw-r--r--test/prism/snapshots/seattlerb/case_in_86_2.txt15
-rw-r--r--test/prism/snapshots/seattlerb/case_in_array_pat_const.txt12
-rw-r--r--test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt13
-rw-r--r--test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt14
-rw-r--r--test/prism/snapshots/seattlerb/case_in_const.txt9
-rw-r--r--test/prism/snapshots/seattlerb/case_in_else.txt13
-rw-r--r--test/prism/snapshots/seattlerb/case_in_find.txt13
-rw-r--r--test/prism/snapshots/seattlerb/case_in_find_array.txt12
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat.txt16
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt24
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt16
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt14
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt16
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt12
-rw-r--r--test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt21
-rw-r--r--test/prism/snapshots/seattlerb/case_in_multiple.txt17
-rw-r--r--test/prism/snapshots/seattlerb/case_in_or.txt12
-rw-r--r--test/prism/snapshots/seattlerb/class_comments.txt6
-rw-r--r--test/prism/snapshots/seattlerb/cond_unary_minus.txt5
-rw-r--r--test/prism/snapshots/seattlerb/const_2_op_asgn_or2.txt7
-rw-r--r--test/prism/snapshots/seattlerb/const_3_op_asgn_or.txt6
-rw-r--r--test/prism/snapshots/seattlerb/const_op_asgn_and1.txt6
-rw-r--r--test/prism/snapshots/seattlerb/const_op_asgn_and2.txt6
-rw-r--r--test/prism/snapshots/seattlerb/const_op_asgn_or.txt7
-rw-r--r--test/prism/snapshots/seattlerb/defined_eh_parens.txt5
-rw-r--r--test/prism/snapshots/seattlerb/defn_arg_asplat_arg.txt4
-rw-r--r--test/prism/snapshots/seattlerb/defn_arg_forward_args.txt10
-rw-r--r--test/prism/snapshots/seattlerb/defn_args_forward_args.txt12
-rw-r--r--test/prism/snapshots/seattlerb/defn_comments.txt3
-rw-r--r--test/prism/snapshots/seattlerb/defn_endless_command.txt8
-rw-r--r--test/prism/snapshots/seattlerb/defn_endless_command_rescue.txt9
-rw-r--r--test/prism/snapshots/seattlerb/defn_forward_args.txt9
-rw-r--r--test/prism/snapshots/seattlerb/defn_forward_args__no_parens.txt9
-rw-r--r--test/prism/snapshots/seattlerb/defn_kwarg_env.txt9
-rw-r--r--test/prism/snapshots/seattlerb/defn_kwarg_kwarg.txt8
-rw-r--r--test/prism/snapshots/seattlerb/defn_kwarg_kwsplat.txt6
-rw-r--r--test/prism/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt6
-rw-r--r--test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt8
-rw-r--r--test/prism/snapshots/seattlerb/defn_kwarg_no_parens.txt6
-rw-r--r--test/prism/snapshots/seattlerb/defn_kwarg_val.txt6
-rw-r--r--test/prism/snapshots/seattlerb/defn_no_kwargs.txt5
-rw-r--r--test/prism/snapshots/seattlerb/defn_oneliner.txt8
-rw-r--r--test/prism/snapshots/seattlerb/defn_oneliner_eq2.txt10
-rw-r--r--test/prism/snapshots/seattlerb/defn_oneliner_noargs.txt6
-rw-r--r--test/prism/snapshots/seattlerb/defn_oneliner_noargs_parentheses.txt6
-rw-r--r--test/prism/snapshots/seattlerb/defn_oneliner_rescue.txt24
-rw-r--r--test/prism/snapshots/seattlerb/defn_opt_last_arg.txt5
-rw-r--r--test/prism/snapshots/seattlerb/defn_opt_reg.txt5
-rw-r--r--test/prism/snapshots/seattlerb/defn_opt_splat_arg.txt6
-rw-r--r--test/prism/snapshots/seattlerb/defn_powarg.txt4
-rw-r--r--test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt6
-rw-r--r--test/prism/snapshots/seattlerb/defn_splat_arg.txt4
-rw-r--r--test/prism/snapshots/seattlerb/defn_unary_not.txt5
-rw-r--r--test/prism/snapshots/seattlerb/defns_reserved.txt4
-rw-r--r--test/prism/snapshots/seattlerb/defs_as_arg_with_do_block_inside.txt10
-rw-r--r--test/prism/snapshots/seattlerb/defs_comments.txt4
-rw-r--r--test/prism/snapshots/seattlerb/defs_endless_command.txt8
-rw-r--r--test/prism/snapshots/seattlerb/defs_endless_command_rescue.txt9
-rw-r--r--test/prism/snapshots/seattlerb/defs_kwarg.txt7
-rw-r--r--test/prism/snapshots/seattlerb/defs_oneliner.txt9
-rw-r--r--test/prism/snapshots/seattlerb/defs_oneliner_eq2.txt11
-rw-r--r--test/prism/snapshots/seattlerb/defs_oneliner_rescue.txt27
-rw-r--r--test/prism/snapshots/seattlerb/difficult0_.txt10
-rw-r--r--test/prism/snapshots/seattlerb/difficult1_line_numbers.txt53
-rw-r--r--test/prism/snapshots/seattlerb/difficult1_line_numbers2.txt18
-rw-r--r--test/prism/snapshots/seattlerb/difficult2_.txt19
-rw-r--r--test/prism/snapshots/seattlerb/difficult3_.txt9
-rw-r--r--test/prism/snapshots/seattlerb/difficult3_2.txt7
-rw-r--r--test/prism/snapshots/seattlerb/difficult3_3.txt7
-rw-r--r--test/prism/snapshots/seattlerb/difficult3_4.txt9
-rw-r--r--test/prism/snapshots/seattlerb/difficult3_5.txt10
-rw-r--r--test/prism/snapshots/seattlerb/difficult3__10.txt9
-rw-r--r--test/prism/snapshots/seattlerb/difficult3__11.txt9
-rw-r--r--test/prism/snapshots/seattlerb/difficult3__12.txt9
-rw-r--r--test/prism/snapshots/seattlerb/difficult3__6.txt9
-rw-r--r--test/prism/snapshots/seattlerb/difficult3__7.txt9
-rw-r--r--test/prism/snapshots/seattlerb/difficult3__8.txt9
-rw-r--r--test/prism/snapshots/seattlerb/difficult3__9.txt9
-rw-r--r--test/prism/snapshots/seattlerb/difficult4__leading_dots.txt4
-rw-r--r--test/prism/snapshots/seattlerb/difficult4__leading_dots2.txt8
-rw-r--r--test/prism/snapshots/seattlerb/difficult6_.txt11
-rw-r--r--test/prism/snapshots/seattlerb/difficult6__7.txt12
-rw-r--r--test/prism/snapshots/seattlerb/difficult6__8.txt12
-rw-r--r--test/prism/snapshots/seattlerb/difficult7_.txt20
-rw-r--r--test/prism/snapshots/seattlerb/do_bug.txt11
-rw-r--r--test/prism/snapshots/seattlerb/do_lambda.txt4
-rw-r--r--test/prism/snapshots/seattlerb/dot2_nil__26.txt4
-rw-r--r--test/prism/snapshots/seattlerb/dot3_nil__26.txt4
-rw-r--r--test/prism/snapshots/seattlerb/dstr_evstr.txt10
-rw-r--r--test/prism/snapshots/seattlerb/dstr_evstr_empty_end.txt5
-rw-r--r--test/prism/snapshots/seattlerb/dstr_lex_state.txt8
-rw-r--r--test/prism/snapshots/seattlerb/dstr_str.txt10
-rw-r--r--test/prism/snapshots/seattlerb/dsym_esc_to_sym.txt4
-rw-r--r--test/prism/snapshots/seattlerb/dsym_to_sym.txt12
-rw-r--r--test/prism/snapshots/seattlerb/eq_begin_line_numbers.txt6
-rw-r--r--test/prism/snapshots/seattlerb/eq_begin_why_wont_people_use_their_spacebar.txt8
-rw-r--r--test/prism/snapshots/seattlerb/evstr_evstr.txt8
-rw-r--r--test/prism/snapshots/seattlerb/evstr_str.txt8
-rw-r--r--test/prism/snapshots/seattlerb/expr_not_bang.txt4
-rw-r--r--test/prism/snapshots/seattlerb/f_kw.txt6
-rw-r--r--test/prism/snapshots/seattlerb/f_kw__required.txt4
-rw-r--r--test/prism/snapshots/seattlerb/flip2_env_lvar.txt3
-rw-r--r--test/prism/snapshots/seattlerb/float_with_if_modifier.txt6
-rw-r--r--test/prism/snapshots/seattlerb/heredoc__backslash_dos_format.txt3
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_backslash_nl.txt6
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_bad_hex_escape.txt3
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_bad_oct_escape.txt3
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_comma_arg.txt6
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_lineno.txt6
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_nested.txt16
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_squiggly.txt11
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt9
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt11
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_squiggly_empty.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_squiggly_interp.txt15
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_squiggly_no_indent.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_squiggly_tabs.txt9
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt9
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt11
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_unicode.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt10
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt10
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt4
-rw-r--r--test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt4
-rw-r--r--test/prism/snapshots/seattlerb/if_elsif.txt8
-rw-r--r--test/prism/snapshots/seattlerb/if_symbol.txt5
-rw-r--r--test/prism/snapshots/seattlerb/in_expr_no_case.txt4
-rw-r--r--test/prism/snapshots/seattlerb/index_0.txt4
-rw-r--r--test/prism/snapshots/seattlerb/index_0_opasgn.txt4
-rw-r--r--test/prism/snapshots/seattlerb/integer_with_if_modifier.txt7
-rw-r--r--test/prism/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt10
-rw-r--r--test/prism/snapshots/seattlerb/interpolated_word_array_line_breaks.txt6
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_1.txt7
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_10_1.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_10_2.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_11_1.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_11_2.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_2__19.txt8
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_3.txt8
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_4.txt7
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_5.txt7
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_6.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_7_1.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_7_2.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_8_1.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_8_2.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_9_1.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_args_9_2.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_kwarg.txt9
-rw-r--r--test/prism/snapshots/seattlerb/iter_kwarg_kwsplat.txt9
-rw-r--r--test/prism/snapshots/seattlerb/label_vs_string.txt4
-rw-r--r--test/prism/snapshots/seattlerb/lambda_do_vs_brace.txt16
-rw-r--r--test/prism/snapshots/seattlerb/lasgn_arg_rescue_arg.txt8
-rw-r--r--test/prism/snapshots/seattlerb/lasgn_call_bracket_rescue_arg.txt8
-rw-r--r--test/prism/snapshots/seattlerb/lasgn_call_nobracket_rescue_arg.txt8
-rw-r--r--test/prism/snapshots/seattlerb/lasgn_command.txt5
-rw-r--r--test/prism/snapshots/seattlerb/lasgn_env.txt5
-rw-r--r--test/prism/snapshots/seattlerb/lasgn_ivar_env.txt5
-rw-r--r--test/prism/snapshots/seattlerb/lasgn_lasgn_command_call.txt6
-rw-r--r--test/prism/snapshots/seattlerb/lasgn_middle_splat.txt4
-rw-r--r--test/prism/snapshots/seattlerb/magic_encoding_comment.txt11
-rw-r--r--test/prism/snapshots/seattlerb/masgn_anon_splat_arg.txt5
-rw-r--r--test/prism/snapshots/seattlerb/masgn_arg_colon_arg.txt4
-rw-r--r--test/prism/snapshots/seattlerb/masgn_arg_ident.txt4
-rw-r--r--test/prism/snapshots/seattlerb/masgn_arg_splat_arg.txt7
-rw-r--r--test/prism/snapshots/seattlerb/masgn_colon2.txt11
-rw-r--r--test/prism/snapshots/seattlerb/masgn_colon3.txt11
-rw-r--r--test/prism/snapshots/seattlerb/masgn_command_call.txt7
-rw-r--r--test/prism/snapshots/seattlerb/masgn_double_paren.txt6
-rw-r--r--test/prism/snapshots/seattlerb/masgn_lhs_splat.txt13
-rw-r--r--test/prism/snapshots/seattlerb/masgn_paren.txt5
-rw-r--r--test/prism/snapshots/seattlerb/masgn_splat_arg.txt6
-rw-r--r--test/prism/snapshots/seattlerb/masgn_splat_arg_arg.txt7
-rw-r--r--test/prism/snapshots/seattlerb/masgn_star.txt6
-rw-r--r--test/prism/snapshots/seattlerb/masgn_var_star_var.txt6
-rw-r--r--test/prism/snapshots/seattlerb/messy_op_asgn_lineno.txt9
-rw-r--r--test/prism/snapshots/seattlerb/method_call_assoc_trailing_comma.txt9
-rw-r--r--test/prism/snapshots/seattlerb/method_call_trailing_comma.txt6
-rw-r--r--test/prism/snapshots/seattlerb/mlhs_back_anonsplat.txt7
-rw-r--r--test/prism/snapshots/seattlerb/mlhs_back_splat.txt8
-rw-r--r--test/prism/snapshots/seattlerb/mlhs_front_anonsplat.txt7
-rw-r--r--test/prism/snapshots/seattlerb/mlhs_front_splat.txt8
-rw-r--r--test/prism/snapshots/seattlerb/mlhs_keyword.txt6
-rw-r--r--test/prism/snapshots/seattlerb/mlhs_mid_anonsplat.txt10
-rw-r--r--test/prism/snapshots/seattlerb/mlhs_mid_splat.txt11
-rw-r--r--test/prism/snapshots/seattlerb/mlhs_rescue.txt8
-rw-r--r--test/prism/snapshots/seattlerb/module_comments.txt6
-rw-r--r--test/prism/snapshots/seattlerb/multiline_hash_declaration.txt20
-rw-r--r--test/prism/snapshots/seattlerb/non_interpolated_symbol_array_line_breaks.txt10
-rw-r--r--test/prism/snapshots/seattlerb/non_interpolated_word_array_line_breaks.txt6
-rw-r--r--test/prism/snapshots/seattlerb/op_asgn_command_call.txt5
-rw-r--r--test/prism/snapshots/seattlerb/op_asgn_dot_ident_command_call.txt7
-rw-r--r--test/prism/snapshots/seattlerb/op_asgn_index_command_call.txt10
-rw-r--r--test/prism/snapshots/seattlerb/op_asgn_primary_colon_const_command_call.txt5
-rw-r--r--test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier1.txt7
-rw-r--r--test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier_command_call.txt5
-rw-r--r--test/prism/snapshots/seattlerb/op_asgn_val_dot_ident_command_call.txt6
-rw-r--r--test/prism/snapshots/seattlerb/parse_def_special_name.txt3
-rw-r--r--test/prism/snapshots/seattlerb/parse_if_not_canonical.txt10
-rw-r--r--test/prism/snapshots/seattlerb/parse_if_not_noncanonical.txt10
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_block.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_block_inline_comment.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_block_inline_comment_leading_newlines.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_block_inline_multiline_comment.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt5
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_call_ivar_line_break_paren.txt5
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_call_no_args.txt12
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_defn_complex.txt14
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_defn_no_parens.txt4
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_defn_no_parens_args.txt4
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_dot2.txt12
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_dot2_open.txt10
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_dot3.txt12
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_dot3_open.txt10
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_dstr_escaped_newline.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_dstr_soft_newline.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_evstr_after_break.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_hash_lit.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_heredoc.txt6
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_heredoc_evstr.txt10
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt6
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt6
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_iter_call_no_parens.txt12
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_iter_call_parens.txt12
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_multiline_str.txt6
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_multiline_str_literal_n.txt6
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_newlines.txt3
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_op_asgn.txt5
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_postexe.txt6
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_preexe.txt6
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_rescue.txt14
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_return.txt11
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_str_with_newline_escape.txt5
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_to_ary.txt7
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_trailing_newlines.txt6
-rw-r--r--test/prism/snapshots/seattlerb/parse_opt_call_args_assocs_comma.txt11
-rw-r--r--test/prism/snapshots/seattlerb/parse_opt_call_args_lit_comma.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_019.txt14
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_044.txt8
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_051.txt20
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_058.txt23
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_058_2.txt21
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_069.txt16
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_076.txt19
-rw-r--r--test/prism/snapshots/seattlerb/parse_until_not_canonical.txt7
-rw-r--r--test/prism/snapshots/seattlerb/parse_until_not_noncanonical.txt7
-rw-r--r--test/prism/snapshots/seattlerb/parse_while_not_canonical.txt7
-rw-r--r--test/prism/snapshots/seattlerb/parse_while_not_noncanonical.txt7
-rw-r--r--test/prism/snapshots/seattlerb/pctW_lineno.txt4
-rw-r--r--test/prism/snapshots/seattlerb/pct_Q_backslash_nl.txt4
-rw-r--r--test/prism/snapshots/seattlerb/pct_nl.txt3
-rw-r--r--test/prism/snapshots/seattlerb/pct_w_heredoc_interp_nested.txt10
-rw-r--r--test/prism/snapshots/seattlerb/pipe_semicolon.txt6
-rw-r--r--test/prism/snapshots/seattlerb/pipe_space.txt6
-rw-r--r--test/prism/snapshots/seattlerb/qWords_space.txt4
-rw-r--r--test/prism/snapshots/seattlerb/qsymbols.txt10
-rw-r--r--test/prism/snapshots/seattlerb/qsymbols_empty.txt4
-rw-r--r--test/prism/snapshots/seattlerb/qsymbols_empty_space.txt4
-rw-r--r--test/prism/snapshots/seattlerb/qsymbols_interp.txt17
-rw-r--r--test/prism/snapshots/seattlerb/quoted_symbol_hash_arg.txt8
-rw-r--r--test/prism/snapshots/seattlerb/quoted_symbol_keys.txt8
-rw-r--r--test/prism/snapshots/seattlerb/qw_escape.txt4
-rw-r--r--test/prism/snapshots/seattlerb/qw_escape_term.txt4
-rw-r--r--test/prism/snapshots/seattlerb/qwords_empty.txt4
-rw-r--r--test/prism/snapshots/seattlerb/read_escape_unicode_curlies.txt4
-rw-r--r--test/prism/snapshots/seattlerb/read_escape_unicode_h4.txt4
-rw-r--r--test/prism/snapshots/seattlerb/regexp.txt12
-rw-r--r--test/prism/snapshots/seattlerb/regexp_esc_C_slash.txt4
-rw-r--r--test/prism/snapshots/seattlerb/regexp_esc_u.txt4
-rw-r--r--test/prism/snapshots/seattlerb/regexp_escape_extended.txt4
-rw-r--r--test/prism/snapshots/seattlerb/regexp_unicode_curlies.txt6
-rw-r--r--test/prism/snapshots/seattlerb/required_kwarg_no_value.txt4
-rw-r--r--test/prism/snapshots/seattlerb/rescue_do_end_ensure_result.txt13
-rw-r--r--test/prism/snapshots/seattlerb/rescue_do_end_no_raise.txt21
-rw-r--r--test/prism/snapshots/seattlerb/rescue_do_end_raised.txt13
-rw-r--r--test/prism/snapshots/seattlerb/rescue_do_end_rescued.txt21
-rw-r--r--test/prism/snapshots/seattlerb/rescue_in_block.txt10
-rw-r--r--test/prism/snapshots/seattlerb/rescue_parens.txt7
-rw-r--r--test/prism/snapshots/seattlerb/return_call_assocs.txt51
-rw-r--r--test/prism/snapshots/seattlerb/rhs_asgn.txt6
-rw-r--r--test/prism/snapshots/seattlerb/ruby21_numbers.txt12
-rw-r--r--test/prism/snapshots/seattlerb/safe_attrasgn.txt6
-rw-r--r--test/prism/snapshots/seattlerb/safe_attrasgn_constant.txt6
-rw-r--r--test/prism/snapshots/seattlerb/safe_call.txt4
-rw-r--r--test/prism/snapshots/seattlerb/safe_call_after_newline.txt4
-rw-r--r--test/prism/snapshots/seattlerb/safe_call_dot_parens.txt4
-rw-r--r--test/prism/snapshots/seattlerb/safe_call_newline.txt4
-rw-r--r--test/prism/snapshots/seattlerb/safe_call_operator.txt6
-rw-r--r--test/prism/snapshots/seattlerb/safe_call_rhs_newline.txt3
-rw-r--r--test/prism/snapshots/seattlerb/safe_calls.txt6
-rw-r--r--test/prism/snapshots/seattlerb/safe_op_asgn.txt6
-rw-r--r--test/prism/snapshots/seattlerb/safe_op_asgn2.txt4
-rw-r--r--test/prism/snapshots/seattlerb/slashy_newlines_within_string.txt6
-rw-r--r--test/prism/snapshots/seattlerb/stabby_arg_no_paren.txt5
-rw-r--r--test/prism/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt7
-rw-r--r--test/prism/snapshots/seattlerb/stabby_block_iter_call.txt10
-rw-r--r--test/prism/snapshots/seattlerb/stabby_block_iter_call_no_target_with_arg.txt12
-rw-r--r--test/prism/snapshots/seattlerb/stabby_block_kw.txt7
-rw-r--r--test/prism/snapshots/seattlerb/stabby_block_kw__required.txt5
-rw-r--r--test/prism/snapshots/seattlerb/stabby_proc_scope.txt5
-rw-r--r--test/prism/snapshots/seattlerb/str_backslashes.txt4
-rw-r--r--test/prism/snapshots/seattlerb/str_double_double_escaped_newline.txt6
-rw-r--r--test/prism/snapshots/seattlerb/str_double_escaped_newline.txt6
-rw-r--r--test/prism/snapshots/seattlerb/str_double_newline.txt6
-rw-r--r--test/prism/snapshots/seattlerb/str_evstr.txt8
-rw-r--r--test/prism/snapshots/seattlerb/str_evstr_escape.txt10
-rw-r--r--test/prism/snapshots/seattlerb/str_heredoc_interp.txt8
-rw-r--r--test/prism/snapshots/seattlerb/str_interp_ternary_or_label.txt14
-rw-r--r--test/prism/snapshots/seattlerb/str_lit_concat_bad_encodings.txt8
-rw-r--r--test/prism/snapshots/seattlerb/str_newline_hash_line_number.txt6
-rw-r--r--test/prism/snapshots/seattlerb/str_pct_Q_nested.txt10
-rw-r--r--test/prism/snapshots/seattlerb/str_pct_nested_nested.txt14
-rw-r--r--test/prism/snapshots/seattlerb/str_pct_q.txt4
-rw-r--r--test/prism/snapshots/seattlerb/str_single_double_escaped_newline.txt6
-rw-r--r--test/prism/snapshots/seattlerb/str_single_escaped_newline.txt6
-rw-r--r--test/prism/snapshots/seattlerb/str_single_newline.txt6
-rw-r--r--test/prism/snapshots/seattlerb/str_str.txt10
-rw-r--r--test/prism/snapshots/seattlerb/str_str_str.txt12
-rw-r--r--test/prism/snapshots/seattlerb/super_arg.txt5
-rw-r--r--test/prism/snapshots/seattlerb/symbol_empty.txt4
-rw-r--r--test/prism/snapshots/seattlerb/symbol_list.txt10
-rw-r--r--test/prism/snapshots/seattlerb/symbols.txt10
-rw-r--r--test/prism/snapshots/seattlerb/symbols_empty.txt4
-rw-r--r--test/prism/snapshots/seattlerb/symbols_empty_space.txt4
-rw-r--r--test/prism/snapshots/seattlerb/symbols_interp.txt10
-rw-r--r--test/prism/snapshots/seattlerb/thingy.txt10
-rw-r--r--test/prism/snapshots/seattlerb/uminus_float.txt3
-rw-r--r--test/prism/snapshots/seattlerb/unary_minus.txt4
-rw-r--r--test/prism/snapshots/seattlerb/unary_plus.txt4
-rw-r--r--test/prism/snapshots/seattlerb/unary_plus_on_literal.txt6
-rw-r--r--test/prism/snapshots/seattlerb/unary_tilde.txt4
-rw-r--r--test/prism/snapshots/seattlerb/utf8_bom.txt6
-rw-r--r--test/prism/snapshots/seattlerb/when_splat.txt5
-rw-r--r--test/prism/snapshots/seattlerb/words_interp.txt10
-rw-r--r--test/prism/snapshots/single_method_call_with_bang.txt4
-rw-r--r--test/prism/snapshots/single_quote_heredocs.txt4
-rw-r--r--test/prism/snapshots/spanning_heredoc.txt87
-rw-r--r--test/prism/snapshots/spanning_heredoc_newlines.txt18
-rw-r--r--test/prism/snapshots/strings.txt130
-rw-r--r--test/prism/snapshots/super.txt42
-rw-r--r--test/prism/snapshots/symbols.txt159
-rw-r--r--test/prism/snapshots/ternary_operator.txt57
-rw-r--r--test/prism/snapshots/tilde_heredocs.txt148
-rw-r--r--test/prism/snapshots/undef.txt40
-rw-r--r--test/prism/snapshots/unescaping.txt10
-rw-r--r--test/prism/snapshots/unless.txt50
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/alias.txt10
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/assignment.txt259
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/block.txt241
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/case.txt54
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/class.txt40
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/def.txt175
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/defined.txt18
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/defs.txt59
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/dstr.txt96
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/empty.txt2
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/empty_begin.txt3
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/flipflop.txt44
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/for.txt29
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/hookexe.txt12
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/if.txt64
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/kwbegin.txt109
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/lambda.txt23
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/literal.txt371
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/module.txt21
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/opasgn.txt104
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/pattern.txt140
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/pragma.txt8
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/range.txt26
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/rescue.txt8
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/send.txt274
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/since/27.txt15
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/since/30.txt28
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/since/31.txt14
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/since/32.txt26
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/singletons.txt6
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/super.txt35
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/unary.txt43
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/undef.txt10
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/variables.txt15
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/while.txt146
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/and.txt8
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/block.txt36
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/def.txt12
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/dstr.txt193
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/kwbegin.txt55
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/literal.txt30
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/opasgn.txt16
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/send.txt12
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/undef.txt10
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/while.txt48
-rw-r--r--test/prism/snapshots/until.txt54
-rw-r--r--test/prism/snapshots/variables.txt139
-rw-r--r--test/prism/snapshots/while.txt113
-rw-r--r--test/prism/snapshots/whitequark/__ENCODING__.txt3
-rw-r--r--test/prism/snapshots/whitequark/__ENCODING___legacy_.txt3
-rw-r--r--test/prism/snapshots/whitequark/alias.txt7
-rw-r--r--test/prism/snapshots/whitequark/alias_gvar.txt8
-rw-r--r--test/prism/snapshots/whitequark/ambiuous_quoted_label_in_ternary_operator.txt9
-rw-r--r--test/prism/snapshots/whitequark/and.txt4
-rw-r--r--test/prism/snapshots/whitequark/and_asgn.txt14
-rw-r--r--test/prism/snapshots/whitequark/and_or_masgn.txt14
-rw-r--r--test/prism/snapshots/whitequark/anonymous_blockarg.txt8
-rw-r--r--test/prism/snapshots/whitequark/arg.txt6
-rw-r--r--test/prism/snapshots/whitequark/arg_duplicate_ignored.txt6
-rw-r--r--test/prism/snapshots/whitequark/arg_label.txt23
-rw-r--r--test/prism/snapshots/whitequark/arg_scope.txt8
-rw-r--r--test/prism/snapshots/whitequark/args.txt106
-rw-r--r--test/prism/snapshots/whitequark/args_args_assocs.txt17
-rw-r--r--test/prism/snapshots/whitequark/args_args_assocs_comma.txt9
-rw-r--r--test/prism/snapshots/whitequark/args_args_comma.txt4
-rw-r--r--test/prism/snapshots/whitequark/args_args_star.txt9
-rw-r--r--test/prism/snapshots/whitequark/args_assocs_comma.txt9
-rw-r--r--test/prism/snapshots/whitequark/args_block_pass.txt5
-rw-r--r--test/prism/snapshots/whitequark/args_cmd.txt4
-rw-r--r--test/prism/snapshots/whitequark/args_star.txt9
-rw-r--r--test/prism/snapshots/whitequark/array_assocs.txt18
-rw-r--r--test/prism/snapshots/whitequark/array_plain.txt8
-rw-r--r--test/prism/snapshots/whitequark/array_splat.txt17
-rw-r--r--test/prism/snapshots/whitequark/array_symbols.txt8
-rw-r--r--test/prism/snapshots/whitequark/array_symbols_empty.txt6
-rw-r--r--test/prism/snapshots/whitequark/array_symbols_interp.txt16
-rw-r--r--test/prism/snapshots/whitequark/array_words.txt4
-rw-r--r--test/prism/snapshots/whitequark/array_words_empty.txt6
-rw-r--r--test/prism/snapshots/whitequark/array_words_interp.txt14
-rw-r--r--test/prism/snapshots/whitequark/asgn_cmd.txt7
-rw-r--r--test/prism/snapshots/whitequark/asgn_mrhs.txt9
-rw-r--r--test/prism/snapshots/whitequark/back_ref.txt3
-rw-r--r--test/prism/snapshots/whitequark/bang.txt4
-rw-r--r--test/prism/snapshots/whitequark/bang_cmd.txt4
-rw-r--r--test/prism/snapshots/whitequark/begin_cmdarg.txt14
-rw-r--r--test/prism/snapshots/whitequark/beginless_erange_after_newline.txt8
-rw-r--r--test/prism/snapshots/whitequark/beginless_irange_after_newline.txt8
-rw-r--r--test/prism/snapshots/whitequark/beginless_range.txt10
-rw-r--r--test/prism/snapshots/whitequark/blockarg.txt4
-rw-r--r--test/prism/snapshots/whitequark/blockargs.txt197
-rw-r--r--test/prism/snapshots/whitequark/bug_435.txt9
-rw-r--r--test/prism/snapshots/whitequark/bug_447.txt14
-rw-r--r--test/prism/snapshots/whitequark/bug_452.txt11
-rw-r--r--test/prism/snapshots/whitequark/bug_466.txt15
-rw-r--r--test/prism/snapshots/whitequark/bug_473.txt8
-rw-r--r--test/prism/snapshots/whitequark/bug_480.txt8
-rw-r--r--test/prism/snapshots/whitequark/bug_481.txt10
-rw-r--r--test/prism/snapshots/whitequark/bug_ascii_8bit_in_literal.txt4
-rw-r--r--test/prism/snapshots/whitequark/bug_cmd_string_lookahead.txt5
-rw-r--r--test/prism/snapshots/whitequark/bug_cmdarg.txt20
-rw-r--r--test/prism/snapshots/whitequark/bug_def_no_paren_eql_begin.txt3
-rw-r--r--test/prism/snapshots/whitequark/bug_do_block_in_call_args.txt10
-rw-r--r--test/prism/snapshots/whitequark/bug_do_block_in_cmdarg.txt9
-rw-r--r--test/prism/snapshots/whitequark/bug_do_block_in_hash_brace.txt64
-rw-r--r--test/prism/snapshots/whitequark/bug_heredoc_do.txt5
-rw-r--r--test/prism/snapshots/whitequark/bug_interp_single.txt14
-rw-r--r--test/prism/snapshots/whitequark/bug_lambda_leakage.txt7
-rw-r--r--test/prism/snapshots/whitequark/bug_regex_verification.txt4
-rw-r--r--test/prism/snapshots/whitequark/bug_rescue_empty_else.txt6
-rw-r--r--test/prism/snapshots/whitequark/bug_while_not_parens_do.txt7
-rw-r--r--test/prism/snapshots/whitequark/case_cond.txt7
-rw-r--r--test/prism/snapshots/whitequark/case_cond_else.txt11
-rw-r--r--test/prism/snapshots/whitequark/case_expr.txt9
-rw-r--r--test/prism/snapshots/whitequark/case_expr_else.txt13
-rw-r--r--test/prism/snapshots/whitequark/casgn_scoped.txt7
-rw-r--r--test/prism/snapshots/whitequark/casgn_toplevel.txt6
-rw-r--r--test/prism/snapshots/whitequark/casgn_unscoped.txt5
-rw-r--r--test/prism/snapshots/whitequark/character.txt4
-rw-r--r--test/prism/snapshots/whitequark/class.txt6
-rw-r--r--test/prism/snapshots/whitequark/class_super.txt5
-rw-r--r--test/prism/snapshots/whitequark/class_super_label.txt6
-rw-r--r--test/prism/snapshots/whitequark/comments_before_leading_dot__27.txt10
-rw-r--r--test/prism/snapshots/whitequark/complex.txt13
-rw-r--r--test/prism/snapshots/whitequark/cond_begin.txt10
-rw-r--r--test/prism/snapshots/whitequark/cond_begin_masgn.txt10
-rw-r--r--test/prism/snapshots/whitequark/cond_eflipflop.txt9
-rw-r--r--test/prism/snapshots/whitequark/cond_eflipflop_with_beginless_range.txt3
-rw-r--r--test/prism/snapshots/whitequark/cond_eflipflop_with_endless_range.txt3
-rw-r--r--test/prism/snapshots/whitequark/cond_iflipflop.txt9
-rw-r--r--test/prism/snapshots/whitequark/cond_iflipflop_with_beginless_range.txt3
-rw-r--r--test/prism/snapshots/whitequark/cond_iflipflop_with_endless_range.txt3
-rw-r--r--test/prism/snapshots/whitequark/cond_match_current_line.txt9
-rw-r--r--test/prism/snapshots/whitequark/const_op_asgn.txt27
-rw-r--r--test/prism/snapshots/whitequark/const_scoped.txt4
-rw-r--r--test/prism/snapshots/whitequark/const_toplevel.txt3
-rw-r--r--test/prism/snapshots/whitequark/const_unscoped.txt3
-rw-r--r--test/prism/snapshots/whitequark/cpath.txt7
-rw-r--r--test/prism/snapshots/whitequark/cvar.txt3
-rw-r--r--test/prism/snapshots/whitequark/cvasgn.txt5
-rw-r--r--test/prism/snapshots/whitequark/dedenting_heredoc.txt111
-rw-r--r--test/prism/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt8
-rw-r--r--test/prism/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt8
-rw-r--r--test/prism/snapshots/whitequark/def.txt8
-rw-r--r--test/prism/snapshots/whitequark/defined.txt6
-rw-r--r--test/prism/snapshots/whitequark/defs.txt12
-rw-r--r--test/prism/snapshots/whitequark/empty_stmt.txt2
-rw-r--r--test/prism/snapshots/whitequark/endless_comparison_method.txt32
-rw-r--r--test/prism/snapshots/whitequark/endless_method.txt26
-rw-r--r--test/prism/snapshots/whitequark/endless_method_command_syntax.txt49
-rw-r--r--test/prism/snapshots/whitequark/endless_method_forwarded_args_legacy.txt9
-rw-r--r--test/prism/snapshots/whitequark/endless_method_with_rescue_mod.txt17
-rw-r--r--test/prism/snapshots/whitequark/endless_method_without_args.txt24
-rw-r--r--test/prism/snapshots/whitequark/ensure.txt10
-rw-r--r--test/prism/snapshots/whitequark/ensure_empty.txt4
-rw-r--r--test/prism/snapshots/whitequark/false.txt3
-rw-r--r--test/prism/snapshots/whitequark/float.txt4
-rw-r--r--test/prism/snapshots/whitequark/for.txt14
-rw-r--r--test/prism/snapshots/whitequark/for_mlhs.txt11
-rw-r--r--test/prism/snapshots/whitequark/forward_arg.txt9
-rw-r--r--test/prism/snapshots/whitequark/forward_arg_with_open_args.txt74
-rw-r--r--test/prism/snapshots/whitequark/forward_args_legacy.txt18
-rw-r--r--test/prism/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt9
-rw-r--r--test/prism/snapshots/whitequark/forwarded_argument_with_restarg.txt9
-rw-r--r--test/prism/snapshots/whitequark/forwarded_kwrestarg.txt8
-rw-r--r--test/prism/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt12
-rw-r--r--test/prism/snapshots/whitequark/forwarded_restarg.txt8
-rw-r--r--test/prism/snapshots/whitequark/gvar.txt3
-rw-r--r--test/prism/snapshots/whitequark/gvasgn.txt5
-rw-r--r--test/prism/snapshots/whitequark/hash_empty.txt3
-rw-r--r--test/prism/snapshots/whitequark/hash_hashrocket.txt17
-rw-r--r--test/prism/snapshots/whitequark/hash_kwsplat.txt9
-rw-r--r--test/prism/snapshots/whitequark/hash_label.txt8
-rw-r--r--test/prism/snapshots/whitequark/hash_label_end.txt28
-rw-r--r--test/prism/snapshots/whitequark/hash_pair_value_omission.txt22
-rw-r--r--test/prism/snapshots/whitequark/heredoc.txt8
-rw-r--r--test/prism/snapshots/whitequark/if.txt10
-rw-r--r--test/prism/snapshots/whitequark/if_else.txt18
-rw-r--r--test/prism/snapshots/whitequark/if_elsif.txt14
-rw-r--r--test/prism/snapshots/whitequark/if_masgn__24.txt8
-rw-r--r--test/prism/snapshots/whitequark/if_mod.txt6
-rw-r--r--test/prism/snapshots/whitequark/if_nl_then.txt6
-rw-r--r--test/prism/snapshots/whitequark/int.txt8
-rw-r--r--test/prism/snapshots/whitequark/int___LINE__.txt3
-rw-r--r--test/prism/snapshots/whitequark/interp_digit_var.txt86
-rw-r--r--test/prism/snapshots/whitequark/ivar.txt3
-rw-r--r--test/prism/snapshots/whitequark/ivasgn.txt5
-rw-r--r--test/prism/snapshots/whitequark/keyword_argument_omission.txt12
-rw-r--r--test/prism/snapshots/whitequark/kwarg.txt4
-rw-r--r--test/prism/snapshots/whitequark/kwbegin_compstmt.txt8
-rw-r--r--test/prism/snapshots/whitequark/kwnilarg.txt15
-rw-r--r--test/prism/snapshots/whitequark/kwoptarg.txt6
-rw-r--r--test/prism/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt9
-rw-r--r--test/prism/snapshots/whitequark/kwrestarg_named.txt4
-rw-r--r--test/prism/snapshots/whitequark/kwrestarg_unnamed.txt4
-rw-r--r--test/prism/snapshots/whitequark/lbrace_arg_after_command_args.txt13
-rw-r--r--test/prism/snapshots/whitequark/lparenarg_after_lvar__since_25.txt12
-rw-r--r--test/prism/snapshots/whitequark/lvar.txt4
-rw-r--r--test/prism/snapshots/whitequark/lvar_injecting_match.txt7
-rw-r--r--test/prism/snapshots/whitequark/lvasgn.txt6
-rw-r--r--test/prism/snapshots/whitequark/masgn.txt30
-rw-r--r--test/prism/snapshots/whitequark/masgn_attr.txt18
-rw-r--r--test/prism/snapshots/whitequark/masgn_cmd.txt6
-rw-r--r--test/prism/snapshots/whitequark/masgn_const.txt11
-rw-r--r--test/prism/snapshots/whitequark/masgn_nested.txt11
-rw-r--r--test/prism/snapshots/whitequark/masgn_splat.txt39
-rw-r--r--test/prism/snapshots/whitequark/method_definition_in_while_cond.txt36
-rw-r--r--test/prism/snapshots/whitequark/module.txt4
-rw-r--r--test/prism/snapshots/whitequark/multiple_pattern_matches.txt54
-rw-r--r--test/prism/snapshots/whitequark/newline_in_hash_argument.txt39
-rw-r--r--test/prism/snapshots/whitequark/nil.txt3
-rw-r--r--test/prism/snapshots/whitequark/nil_expression.txt4
-rw-r--r--test/prism/snapshots/whitequark/non_lvar_injecting_match.txt10
-rw-r--r--test/prism/snapshots/whitequark/not.txt8
-rw-r--r--test/prism/snapshots/whitequark/not_cmd.txt4
-rw-r--r--test/prism/snapshots/whitequark/not_masgn__24.txt9
-rw-r--r--test/prism/snapshots/whitequark/nth_ref.txt3
-rw-r--r--test/prism/snapshots/whitequark/numbered_args_after_27.txt34
-rw-r--r--test/prism/snapshots/whitequark/numparam_outside_block.txt23
-rw-r--r--test/prism/snapshots/whitequark/numparam_ruby_bug_19025.txt12
-rw-r--r--test/prism/snapshots/whitequark/op_asgn.txt14
-rw-r--r--test/prism/snapshots/whitequark/op_asgn_cmd.txt10
-rw-r--r--test/prism/snapshots/whitequark/op_asgn_index.txt10
-rw-r--r--test/prism/snapshots/whitequark/op_asgn_index_cmd.txt8
-rw-r--r--test/prism/snapshots/whitequark/optarg.txt12
-rw-r--r--test/prism/snapshots/whitequark/or.txt4
-rw-r--r--test/prism/snapshots/whitequark/or_asgn.txt14
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_272.txt8
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_490.txt23
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_507.txt6
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_518.txt5
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_525.txt12
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_604.txt5
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_640.txt8
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_645.txt6
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_830.txt4
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_989.txt4
-rw-r--r--test/prism/snapshots/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt7
-rw-r--r--test/prism/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt44
-rw-r--r--test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt11
-rw-r--r--test/prism/snapshots/whitequark/pattern_matching_blank_else.txt12
-rw-r--r--test/prism/snapshots/whitequark/pattern_matching_else.txt15
-rw-r--r--test/prism/snapshots/whitequark/pattern_matching_single_line.txt14
-rw-r--r--test/prism/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt78
-rw-r--r--test/prism/snapshots/whitequark/postexe.txt6
-rw-r--r--test/prism/snapshots/whitequark/preexe.txt6
-rw-r--r--test/prism/snapshots/whitequark/procarg0.txt13
-rw-r--r--test/prism/snapshots/whitequark/range_exclusive.txt8
-rw-r--r--test/prism/snapshots/whitequark/range_inclusive.txt8
-rw-r--r--test/prism/snapshots/whitequark/rational.txt6
-rw-r--r--test/prism/snapshots/whitequark/regex_interp.txt10
-rw-r--r--test/prism/snapshots/whitequark/regex_plain.txt4
-rw-r--r--test/prism/snapshots/whitequark/resbody_list.txt11
-rw-r--r--test/prism/snapshots/whitequark/resbody_list_mrhs.txt11
-rw-r--r--test/prism/snapshots/whitequark/resbody_list_var.txt11
-rw-r--r--test/prism/snapshots/whitequark/resbody_var.txt20
-rw-r--r--test/prism/snapshots/whitequark/rescue.txt10
-rw-r--r--test/prism/snapshots/whitequark/rescue_else.txt14
-rw-r--r--test/prism/snapshots/whitequark/rescue_else_ensure.txt18
-rw-r--r--test/prism/snapshots/whitequark/rescue_ensure.txt14
-rw-r--r--test/prism/snapshots/whitequark/rescue_in_lambda_block.txt5
-rw-r--r--test/prism/snapshots/whitequark/rescue_mod.txt3
-rw-r--r--test/prism/snapshots/whitequark/rescue_mod_asgn.txt4
-rw-r--r--test/prism/snapshots/whitequark/rescue_mod_masgn.txt12
-rw-r--r--test/prism/snapshots/whitequark/rescue_mod_op_assign.txt4
-rw-r--r--test/prism/snapshots/whitequark/rescue_without_begin_end.txt13
-rw-r--r--test/prism/snapshots/whitequark/restarg_named.txt4
-rw-r--r--test/prism/snapshots/whitequark/restarg_unnamed.txt4
-rw-r--r--test/prism/snapshots/whitequark/return.txt15
-rw-r--r--test/prism/snapshots/whitequark/return_block.txt5
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_10279.txt11
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_10653.txt42
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_11107.txt10
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_11380.txt14
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_11873.txt78
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_11873_a.txt138
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_11873_b.txt11
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_11989.txt4
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_11990.txt10
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_12073.txt19
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_12402.txt68
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_12669.txt18
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_12686.txt8
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_13547.txt5
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_14690.txt10
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_15789.txt24
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_9669.txt14
-rw-r--r--test/prism/snapshots/whitequark/sclass.txt5
-rw-r--r--test/prism/snapshots/whitequark/self.txt3
-rw-r--r--test/prism/snapshots/whitequark/send_attr_asgn.txt18
-rw-r--r--test/prism/snapshots/whitequark/send_attr_asgn_conditional.txt6
-rw-r--r--test/prism/snapshots/whitequark/send_binary_op.txt86
-rw-r--r--test/prism/snapshots/whitequark/send_block_chain_cmd.txt40
-rw-r--r--test/prism/snapshots/whitequark/send_block_conditional.txt5
-rw-r--r--test/prism/snapshots/whitequark/send_call.txt10
-rw-r--r--test/prism/snapshots/whitequark/send_conditional.txt4
-rw-r--r--test/prism/snapshots/whitequark/send_index.txt8
-rw-r--r--test/prism/snapshots/whitequark/send_index_asgn.txt10
-rw-r--r--test/prism/snapshots/whitequark/send_index_asgn_legacy.txt10
-rw-r--r--test/prism/snapshots/whitequark/send_index_cmd.txt4
-rw-r--r--test/prism/snapshots/whitequark/send_index_legacy.txt8
-rw-r--r--test/prism/snapshots/whitequark/send_lambda.txt7
-rw-r--r--test/prism/snapshots/whitequark/send_lambda_args.txt8
-rw-r--r--test/prism/snapshots/whitequark/send_lambda_args_noparen.txt10
-rw-r--r--test/prism/snapshots/whitequark/send_lambda_args_shadow.txt5
-rw-r--r--test/prism/snapshots/whitequark/send_lambda_legacy.txt3
-rw-r--r--test/prism/snapshots/whitequark/send_op_asgn_conditional.txt6
-rw-r--r--test/prism/snapshots/whitequark/send_plain.txt8
-rw-r--r--test/prism/snapshots/whitequark/send_plain_cmd.txt8
-rw-r--r--test/prism/snapshots/whitequark/send_self.txt10
-rw-r--r--test/prism/snapshots/whitequark/send_self_block.txt16
-rw-r--r--test/prism/snapshots/whitequark/send_unary_op.txt8
-rw-r--r--test/prism/snapshots/whitequark/slash_newline_in_heredocs.txt12
-rw-r--r--test/prism/snapshots/whitequark/space_args_arg.txt8
-rw-r--r--test/prism/snapshots/whitequark/space_args_arg_block.txt23
-rw-r--r--test/prism/snapshots/whitequark/space_args_arg_call.txt8
-rw-r--r--test/prism/snapshots/whitequark/space_args_arg_newline.txt8
-rw-r--r--test/prism/snapshots/whitequark/space_args_block.txt6
-rw-r--r--test/prism/snapshots/whitequark/space_args_cmd.txt8
-rw-r--r--test/prism/snapshots/whitequark/string___FILE__.txt4
-rw-r--r--test/prism/snapshots/whitequark/string_concat.txt10
-rw-r--r--test/prism/snapshots/whitequark/string_dvar.txt14
-rw-r--r--test/prism/snapshots/whitequark/string_interp.txt10
-rw-r--r--test/prism/snapshots/whitequark/string_plain.txt6
-rw-r--r--test/prism/snapshots/whitequark/super.txt5
-rw-r--r--test/prism/snapshots/whitequark/super_block.txt6
-rw-r--r--test/prism/snapshots/whitequark/symbol_interp.txt9
-rw-r--r--test/prism/snapshots/whitequark/symbol_plain.txt6
-rw-r--r--test/prism/snapshots/whitequark/ternary.txt10
-rw-r--r--test/prism/snapshots/whitequark/ternary_ambiguous_symbol.txt15
-rw-r--r--test/prism/snapshots/whitequark/trailing_forward_arg.txt12
-rw-r--r--test/prism/snapshots/whitequark/true.txt3
-rw-r--r--test/prism/snapshots/whitequark/unary_num_pow_precedence.txt18
-rw-r--r--test/prism/snapshots/whitequark/undef.txt14
-rw-r--r--test/prism/snapshots/whitequark/unless.txt10
-rw-r--r--test/prism/snapshots/whitequark/unless_else.txt18
-rw-r--r--test/prism/snapshots/whitequark/unless_mod.txt6
-rw-r--r--test/prism/snapshots/whitequark/until.txt12
-rw-r--r--test/prism/snapshots/whitequark/until_mod.txt7
-rw-r--r--test/prism/snapshots/whitequark/until_post.txt9
-rw-r--r--test/prism/snapshots/whitequark/var_and_asgn.txt5
-rw-r--r--test/prism/snapshots/whitequark/var_op_asgn.txt16
-rw-r--r--test/prism/snapshots/whitequark/var_op_asgn_cmd.txt4
-rw-r--r--test/prism/snapshots/whitequark/var_or_asgn.txt5
-rw-r--r--test/prism/snapshots/whitequark/when_multi.txt11
-rw-r--r--test/prism/snapshots/whitequark/when_splat.txt12
-rw-r--r--test/prism/snapshots/whitequark/when_then.txt9
-rw-r--r--test/prism/snapshots/whitequark/while.txt12
-rw-r--r--test/prism/snapshots/whitequark/while_mod.txt7
-rw-r--r--test/prism/snapshots/whitequark/while_post.txt9
-rw-r--r--test/prism/snapshots/whitequark/xstring_interp.txt9
-rw-r--r--test/prism/snapshots/whitequark/xstring_plain.txt4
-rw-r--r--test/prism/snapshots/whitequark/zsuper.txt3
-rw-r--r--test/prism/snapshots/xstring.txt19
-rw-r--r--test/prism/snapshots/xstring_with_backslash.txt4
-rw-r--r--test/prism/snapshots/yield.txt22
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) = "<<TEXT"
├── content_loc: (2,0)-(2,0) = ""
├── closing_loc: (2,0)-(3,0) = "TEXT\n"
diff --git a/test/prism/snapshots/heredoc_with_carriage_returns.txt b/test/prism/snapshots/heredoc_with_carriage_returns.txt
index 134f863234..12130daa75 100644
--- a/test/prism/snapshots/heredoc_with_carriage_returns.txt
+++ b/test/prism/snapshots/heredoc_with_carriage_returns.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) = "<<TEXT"
├── content_loc: (2,0)-(2,0) = ""
├── closing_loc: (2,0)-(3,0) = "TEXT\r\n"
diff --git a/test/prism/snapshots/heredoc_with_comment.txt b/test/prism/snapshots/heredoc_with_comment.txt
index f2225ca981..5c244e50e4 100644
--- a/test/prism/snapshots/heredoc_with_comment.txt
+++ b/test/prism/snapshots/heredoc_with_comment.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:
│ @ StringNode (location: (1,0)-(1,9))
│ ├── flags: ∅
diff --git a/test/prism/snapshots/heredoc_with_escaped_newline_at_start.txt b/test/prism/snapshots/heredoc_with_escaped_newline_at_start.txt
index acc6b082fc..d20d481e33 100644
--- a/test/prism/snapshots/heredoc_with_escaped_newline_at_start.txt
+++ b/test/prism/snapshots/heredoc_with_escaped_newline_at_start.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,25))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,25))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,25))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (1,0)-(1,9))
│ │ ├── flags: ∅
@@ -21,7 +23,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ RegularExpressionNode (location: (1,15)-(1,21))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (1,15)-(1,16) = "/"
│ │ │ ├── content_loc: (1,16)-(1,20) = "^\\s{"
│ │ │ ├── closing_loc: (1,20)-(1,21) = "/"
@@ -35,7 +37,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (5,0)-(5,25))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ StringNode (location: (5,0)-(5,9))
│ ├── flags: ∅
@@ -52,7 +54,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ RegularExpressionNode (location: (5,15)-(5,21))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (5,15)-(5,16) = "/"
│ │ ├── content_loc: (5,16)-(5,20) = "^\\s{"
│ │ ├── closing_loc: (5,20)-(5,21) = "/"
diff --git a/test/prism/snapshots/heredoc_with_trailing_newline.txt b/test/prism/snapshots/heredoc_with_trailing_newline.txt
index b064931aa8..90061708d0 100644
--- a/test/prism/snapshots/heredoc_with_trailing_newline.txt
+++ b/test/prism/snapshots/heredoc_with_trailing_newline.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) = "<<-END"
├── content_loc: (2,0)-(2,0) = ""
├── closing_loc: (2,0)-(2,3) = "END"
diff --git a/test/prism/snapshots/heredocs_leading_whitespace.txt b/test/prism/snapshots/heredocs_leading_whitespace.txt
index dbcb0d5a19..6101cd02d3 100644
--- a/test/prism/snapshots/heredocs_leading_whitespace.txt
+++ b/test/prism/snapshots/heredocs_leading_whitespace.txt
@@ -1,61 +1,63 @@
@ ProgramNode (location: (1,0)-(26,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(26,10))
+ ├── flags: ∅
└── body: (length: 6)
├── @ StringNode (location: (1,0)-(1,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,10) = "<<-' FOO'"
│ ├── content_loc: (2,0)-(4,0) = "a\nb\n"
│ ├── closing_loc: (4,0)-(5,0) = " FOO\n"
│ └── unescaped: "a\nb\n"
├── @ StringNode (location: (6,0)-(6,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (6,0)-(6,10) = "<<-\" FOO\""
│ ├── content_loc: (7,0)-(9,0) = "a\nb\n"
│ ├── closing_loc: (9,0)-(10,0) = " FOO\n"
│ └── unescaped: "a\nb\n"
├── @ XStringNode (location: (11,0)-(11,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (11,0)-(11,10) = "<<-` FOO`"
│ ├── content_loc: (12,0)-(14,0) = "a\nb\n"
│ ├── closing_loc: (14,0)-(15,0) = " FOO\n"
│ └── unescaped: "a\nb\n"
├── @ StringNode (location: (16,0)-(16,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (16,0)-(16,10) = "<<-' FOO'"
│ ├── content_loc: (17,0)-(19,0) = "a\nb\n"
│ ├── closing_loc: (19,0)-(20,0) = " FOO\n"
│ └── unescaped: "a\nb\n"
├── @ InterpolatedStringNode (location: (21,0)-(21,10))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── opening_loc: (21,0)-(21,10) = "<<~' FOO'"
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (22,0)-(23,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (22,0)-(23,0) = "a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ └── @ StringNode (location: (23,0)-(24,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (23,0)-(24,0) = "b\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b\n"
│ └── closing_loc: (24,0)-(25,0) = " FOO\n"
└── @ InterpolatedStringNode (location: (26,0)-(26,10))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── opening_loc: (26,0)-(26,10) = "<<~' FOO'"
├── parts: (length: 2)
│ ├── @ StringNode (location: (27,0)-(28,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (27,0)-(28,0) = "a\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a\n"
│ └── @ StringNode (location: (28,0)-(29,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (28,0)-(29,0) = "b\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/heredocs_nested.txt b/test/prism/snapshots/heredocs_nested.txt
index da13e48c51..08576915dc 100644
--- a/test/prism/snapshots/heredocs_nested.txt
+++ b/test/prism/snapshots/heredocs_nested.txt
@@ -1,76 +1,86 @@
@ ProgramNode (location: (1,0)-(12,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(12,4))
+ ├── flags: ∅
└── body: (length: 2)
├── @ InterpolatedStringNode (location: (1,0)-(1,7))
- │ ├── flags: mutable
+ │ ├── flags: newline, static_literal, mutable
│ ├── opening_loc: (1,0)-(1,7) = "<<~RUBY"
│ ├── parts: (length: 4)
│ │ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (2,0)-(3,0) = "pre\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "pre\n"
│ │ ├── @ EmbeddedStatementsNode (location: (3,0)-(7,1))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,0)-(3,2) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (4,0)-(4,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ StringNode (location: (4,0)-(4,6))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: (4,0)-(4,6) = "<<RUBY"
│ │ │ │ ├── content_loc: (5,0)-(6,0) = " hello\n"
│ │ │ │ ├── closing_loc: (6,0)-(7,0) = "RUBY\n"
│ │ │ │ └── unescaped: " hello\n"
│ │ │ └── closing_loc: (7,0)-(7,1) = "}"
│ │ ├── @ StringNode (location: (7,1)-(8,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (7,1)-(8,0) = "\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "\n"
│ │ └── @ StringNode (location: (8,0)-(9,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (8,0)-(9,0) = "post\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "post\n"
│ └── closing_loc: (9,0)-(10,0) = "RUBY\n"
└── @ InterpolatedStringNode (location: (12,0)-(12,4))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (12,0)-(12,4) = "<<-A"
├── parts: (length: 2)
│ ├── @ EmbeddedStatementsNode (location: (13,0)-(21,1))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (13,0)-(13,2) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (14,0)-(14,4))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ InterpolatedStringNode (location: (14,0)-(14,4))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (14,0)-(14,4) = "<<-B"
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ EmbeddedStatementsNode (location: (15,0)-(19,1))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (15,0)-(15,2) = "\#{"
│ │ │ │ │ ├── statements:
│ │ │ │ │ │ @ StatementsNode (location: (16,0)-(16,4))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ └── @ InterpolatedStringNode (location: (16,0)-(16,4))
│ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── opening_loc: (16,0)-(16,4) = "<<-C"
│ │ │ │ │ │ ├── parts: (length: 2)
│ │ │ │ │ │ │ ├── @ EmbeddedStatementsNode (location: (17,0)-(17,4))
+ │ │ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ │ ├── opening_loc: (17,0)-(17,2) = "\#{"
│ │ │ │ │ │ │ │ ├── statements:
│ │ │ │ │ │ │ │ │ @ StatementsNode (location: (17,2)-(17,3))
+ │ │ │ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ │ │ │ └── @ IntegerNode (location: (17,2)-(17,3))
- │ │ │ │ │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ │ │ │ │ └── value: 3
│ │ │ │ │ │ │ │ └── closing_loc: (17,3)-(17,4) = "}"
│ │ │ │ │ │ │ └── @ StringNode (location: (17,4)-(18,0))
- │ │ │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ │ ├── content_loc: (17,4)-(18,0) = "\n"
│ │ │ │ │ │ │ ├── closing_loc: ∅
@@ -78,7 +88,7 @@
│ │ │ │ │ │ └── closing_loc: (18,0)-(19,0) = "C\n"
│ │ │ │ │ └── closing_loc: (19,0)-(19,1) = "}"
│ │ │ │ └── @ StringNode (location: (19,1)-(20,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (19,1)-(20,0) = "\n"
│ │ │ │ ├── closing_loc: ∅
@@ -86,7 +96,7 @@
│ │ │ └── closing_loc: (20,0)-(21,0) = "B\n"
│ │ └── closing_loc: (21,0)-(21,1) = "}"
│ └── @ StringNode (location: (21,1)-(22,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (21,1)-(22,0) = "\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/heredocs_with_ignored_newlines.txt b/test/prism/snapshots/heredocs_with_ignored_newlines.txt
index 0f964ec294..16675029e1 100644
--- a/test/prism/snapshots/heredocs_with_ignored_newlines.txt
+++ b/test/prism/snapshots/heredocs_with_ignored_newlines.txt
@@ -1,68 +1,70 @@
@ ProgramNode (location: (1,0)-(4,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,8))
+ ├── flags: ∅
└── body: (length: 2)
├── @ StringNode (location: (1,0)-(1,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,7) = "<<-HERE"
│ ├── content_loc: (2,0)-(2,0) = ""
│ ├── closing_loc: (2,0)-(3,0) = "HERE\n"
│ └── unescaped: ""
└── @ InterpolatedStringNode (location: (4,0)-(4,8))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── opening_loc: (4,0)-(4,8) = "<<~THERE"
├── parts: (length: 9)
│ ├── @ StringNode (location: (5,0)-(6,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (5,0)-(6,0) = " way over\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "way over\n"
│ ├── @ StringNode (location: (6,0)-(7,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (6,0)-(7,0) = " <<HERE\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "<<HERE\n"
│ ├── @ StringNode (location: (7,0)-(8,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (7,0)-(8,0) = " not here\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " not here\n"
│ ├── @ StringNode (location: (8,0)-(9,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (8,0)-(9,0) = " HERE\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "HERE\n"
│ ├── @ StringNode (location: (9,0)-(10,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (9,0)-(10,0) = "\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n"
│ ├── @ StringNode (location: (10,0)-(11,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (10,0)-(11,0) = " <<~BUT\\\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "<<~BUT"
│ ├── @ StringNode (location: (11,0)-(12,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (11,0)-(12,0) = " but\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " but\n"
│ ├── @ StringNode (location: (12,0)-(13,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (12,0)-(13,0) = " BUT\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "BUT\n"
│ └── @ StringNode (location: (13,0)-(14,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (13,0)-(14,0) = " there\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt b/test/prism/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt
index df422f0c1c..5fd24c85c4 100644
--- a/test/prism/snapshots/heredocs_with_ignored_newlines_and_non_empty.txt
+++ b/test/prism/snapshots/heredocs_with_ignored_newlines_and_non_empty.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) = "<<-EOE"
├── content_loc: (2,0)-(4,0) = " some\n heredocs\n"
├── closing_loc: (4,0)-(4,3) = "EOE"
diff --git a/test/prism/snapshots/if.txt b/test/prism/snapshots/if.txt
index 4114d22722..bf756959e7 100644
--- a/test/prism/snapshots/if.txt
+++ b/test/prism/snapshots/if.txt
@@ -1,98 +1,126 @@
@ ProgramNode (location: (1,0)-(42,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(42,3))
+ ├── flags: ∅
└── body: (length: 13)
├── @ IfNode (location: (1,0)-(1,15))
+ │ ├── 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: (1,9)-(1,10))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (1,9)-(1,10))
- │ │ ├── flags: decimal
+ │ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── consequent: ∅
│ └── end_keyword_loc: (1,12)-(1,15) = "end"
├── @ IfNode (location: (3,0)-(4,12))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (3,0)-(3,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (3,3)-(3,7))
+ │ │ └── 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"
├── @ IfNode (location: (6,0)-(6,73))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (6,0)-(6,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (6,3)-(6,7))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: (6,8)-(6,12) = "then"
│ ├── statements:
│ │ @ StatementsNode (location: (6,13)-(6,17))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ TrueNode (location: (6,13)-(6,17))
+ │ │ └── flags: newline, static_literal
│ ├── consequent:
│ │ @ IfNode (location: (6,18)-(6,73))
+ │ │ ├── flags: newline
│ │ ├── if_keyword_loc: (6,18)-(6,23) = "elsif"
│ │ ├── predicate:
│ │ │ @ FalseNode (location: (6,24)-(6,29))
+ │ │ │ └── flags: static_literal
│ │ ├── then_keyword_loc: (6,30)-(6,34) = "then"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (6,35)-(6,40))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ FalseNode (location: (6,35)-(6,40))
+ │ │ │ └── flags: newline, static_literal
│ │ ├── consequent:
│ │ │ @ IfNode (location: (6,41)-(6,73))
+ │ │ │ ├── flags: newline
│ │ │ ├── if_keyword_loc: (6,41)-(6,46) = "elsif"
│ │ │ ├── predicate:
│ │ │ │ @ NilNode (location: (6,47)-(6,50))
+ │ │ │ │ └── flags: static_literal
│ │ │ ├── then_keyword_loc: (6,51)-(6,55) = "then"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (6,56)-(6,59))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ NilNode (location: (6,56)-(6,59))
+ │ │ │ │ └── flags: newline, static_literal
│ │ │ ├── consequent:
│ │ │ │ @ ElseNode (location: (6,60)-(6,73))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── else_keyword_loc: (6,60)-(6,64) = "else"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (6,65)-(6,69))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ SelfNode (location: (6,65)-(6,69))
+ │ │ │ │ │ └── flags: newline
│ │ │ │ └── end_keyword_loc: (6,70)-(6,73) = "end"
│ │ │ └── end_keyword_loc: (6,70)-(6,73) = "end"
│ │ └── end_keyword_loc: (6,70)-(6,73) = "end"
│ └── end_keyword_loc: (6,70)-(6,73) = "end"
├── @ IfNode (location: (8,0)-(8,9))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (8,2)-(8,4) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (8,5)-(8,9))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (8,0)-(8,1))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (8,0)-(8,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── consequent: ∅
│ └── end_keyword_loc: ∅
├── @ CallNode (location: (10,0)-(10,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -102,20 +130,26 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (10,4)-(10,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (10,6)-(10,19))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IfNode (location: (10,6)-(10,19))
+ │ │ ├── flags: newline
│ │ ├── if_keyword_loc: (10,12)-(10,14) = "if"
│ │ ├── predicate:
│ │ │ @ TrueNode (location: (10,15)-(10,19))
+ │ │ │ └── flags: static_literal
│ │ ├── then_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (10,6)-(10,11))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ BreakNode (location: (10,6)-(10,11))
+ │ │ │ ├── flags: newline
│ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (10,6)-(10,11) = "break"
│ │ ├── consequent: ∅
@@ -123,7 +157,7 @@
│ ├── opening_loc: (10,4)-(10,5) = "{"
│ └── closing_loc: (10,20)-(10,21) = "}"
├── @ CallNode (location: (12,0)-(12,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -133,20 +167,26 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (12,4)-(12,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (12,6)-(12,18))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IfNode (location: (12,6)-(12,18))
+ │ │ ├── flags: newline
│ │ ├── if_keyword_loc: (12,11)-(12,13) = "if"
│ │ ├── predicate:
│ │ │ @ TrueNode (location: (12,14)-(12,18))
+ │ │ │ └── flags: static_literal
│ │ ├── then_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (12,6)-(12,10))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ NextNode (location: (12,6)-(12,10))
+ │ │ │ ├── flags: newline
│ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (12,6)-(12,10) = "next"
│ │ ├── consequent: ∅
@@ -154,21 +194,24 @@
│ ├── opening_loc: (12,4)-(12,5) = "{"
│ └── closing_loc: (12,19)-(12,20) = "}"
├── @ IfNode (location: (14,0)-(14,14))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (14,7)-(14,9) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (14,10)-(14,14))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (14,0)-(14,6))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ReturnNode (location: (14,0)-(14,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (14,0)-(14,6) = "return"
│ │ └── arguments: ∅
│ ├── consequent: ∅
│ └── end_keyword_loc: ∅
├── @ CallNode (location: (16,0)-(16,38))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -178,12 +221,15 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (16,4)-(16,38))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (16,6)-(16,36))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IfNode (location: (16,6)-(16,36))
+ │ │ ├── flags: newline
│ │ ├── if_keyword_loc: (16,6)-(16,8) = "if"
│ │ ├── predicate:
│ │ │ @ CallNode (location: (16,9)-(16,18))
@@ -199,14 +245,16 @@
│ │ ├── then_keyword_loc: (16,19)-(16,23) = "then"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (16,24)-(16,32))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ BreakNode (location: (16,24)-(16,32))
+ │ │ │ ├── flags: newline
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (16,30)-(16,32))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (16,30)-(16,32))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 42
│ │ │ └── keyword_loc: (16,24)-(16,29) = "break"
│ │ ├── consequent: ∅
@@ -214,6 +262,7 @@
│ ├── opening_loc: (16,4)-(16,5) = "{"
│ └── closing_loc: (16,37)-(16,38) = "}"
├── @ IfNode (location: (18,0)-(20,3))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (18,0)-(18,2) = "if"
│ ├── predicate:
│ │ @ CallNode (location: (18,3)-(18,6))
@@ -229,9 +278,10 @@
│ ├── then_keyword_loc: (19,0)-(19,4) = "then"
│ ├── statements:
│ │ @ StatementsNode (location: (19,5)-(19,8))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (19,5)-(19,8))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
@@ -243,6 +293,7 @@
│ ├── consequent: ∅
│ └── end_keyword_loc: (20,0)-(20,3) = "end"
├── @ IfNode (location: (22,0)-(22,11))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (22,7)-(22,9) = "if"
│ ├── predicate:
│ │ @ CallNode (location: (22,10)-(22,11))
@@ -258,8 +309,10 @@
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (22,0)-(22,6))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IfNode (location: (22,0)-(22,6))
+ │ │ ├── flags: newline
│ │ ├── if_keyword_loc: (22,2)-(22,4) = "if"
│ │ ├── predicate:
│ │ │ @ CallNode (location: (22,5)-(22,6))
@@ -275,9 +328,10 @@
│ │ ├── then_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (22,0)-(22,1))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (22,0)-(22,1))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :a
@@ -291,15 +345,18 @@
│ ├── consequent: ∅
│ └── end_keyword_loc: ∅
├── @ IfNode (location: (24,0)-(27,3))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (24,0)-(24,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (24,3)-(24,7))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (25,2)-(25,6))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (25,2)-(25,6))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
@@ -313,15 +370,17 @@
│ │ │ ├── flags: symbol_keys
│ │ │ └── elements: (length: 1)
│ │ │ └── @ 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) = "b"
│ │ │ │ ├── closing_loc: (25,5)-(25,6) = ":"
│ │ │ │ └── unescaped: "b"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (25,4)-(25,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ CallNode (location: (25,4)-(25,6))
│ │ │ │ ├── flags: ignore_visibility
@@ -338,14 +397,17 @@
│ │ └── block: ∅
│ ├── consequent:
│ │ @ ElseNode (location: (26,0)-(27,3))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (26,0)-(26,4) = "else"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (27,0)-(27,3) = "end"
│ └── end_keyword_loc: (27,0)-(27,3) = "end"
├── @ IfNode (location: (29,0)-(31,3))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (29,0)-(29,2) = "if"
│ ├── predicate:
│ │ @ MatchPredicateNode (location: (29,3)-(29,12))
+ │ │ ├── flags: ∅
│ │ ├── value:
│ │ │ @ CallNode (location: (29,3)-(29,7))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -359,16 +421,18 @@
│ │ │ └── block: ∅
│ │ ├── pattern:
│ │ │ @ IntegerNode (location: (29,11)-(29,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (29,8)-(29,10) = "in"
│ ├── then_keyword_loc: ∅
│ ├── statements: ∅
│ ├── consequent:
│ │ @ IfNode (location: (30,0)-(31,3))
+ │ │ ├── flags: newline
│ │ ├── if_keyword_loc: (30,0)-(30,5) = "elsif"
│ │ ├── predicate:
│ │ │ @ MatchPredicateNode (location: (30,6)-(30,15))
+ │ │ │ ├── flags: ∅
│ │ │ ├── value:
│ │ │ │ @ CallNode (location: (30,6)-(30,10))
│ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -382,6 +446,7 @@
│ │ │ │ └── block: ∅
│ │ │ ├── pattern:
│ │ │ │ @ ConstantReadNode (location: (30,14)-(30,15))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :B
│ │ │ └── operator_loc: (30,11)-(30,13) = "in"
│ │ ├── then_keyword_loc: ∅
@@ -390,6 +455,7 @@
│ │ └── end_keyword_loc: (31,0)-(31,3) = "end"
│ └── end_keyword_loc: (31,0)-(31,3) = "end"
└── @ IfNode (location: (33,0)-(42,3))
+ ├── flags: newline
├── if_keyword_loc: (33,0)-(33,2) = "if"
├── predicate:
│ @ CallNode (location: (33,3)-(33,5))
@@ -405,9 +471,10 @@
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (34,2)-(35,5))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (34,2)-(35,5))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :lambda
@@ -417,11 +484,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (34,9)-(35,5))
+ │ ├── flags: ∅
│ ├── locals: [:_]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (34,12)-(34,15))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (34,13)-(34,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (34,13)-(34,14))
│ │ │ │ ├── flags: ∅
@@ -440,6 +510,7 @@
│ └── closing_loc: (35,2)-(35,5) = "end"
├── consequent:
│ @ IfNode (location: (36,0)-(42,3))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (36,0)-(36,5) = "elsif"
│ ├── predicate:
│ │ @ CallNode (location: (36,6)-(36,8))
@@ -455,9 +526,10 @@
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (37,2)-(38,5))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (37,2)-(38,5))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :lambda
@@ -467,11 +539,14 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (37,9)-(38,5))
+ │ │ ├── flags: ∅
│ │ ├── locals: [:_]
│ │ ├── parameters:
│ │ │ @ BlockParametersNode (location: (37,12)-(37,15))
+ │ │ │ ├── flags: ∅
│ │ │ ├── parameters:
│ │ │ │ @ ParametersNode (location: (37,13)-(37,14))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── requireds: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (37,13)-(37,14))
│ │ │ │ │ ├── flags: ∅
@@ -490,12 +565,14 @@
│ │ └── closing_loc: (38,2)-(38,5) = "end"
│ ├── consequent:
│ │ @ ElseNode (location: (39,0)-(42,3))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (39,0)-(39,4) = "else"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (40,2)-(41,5))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (40,2)-(41,5))
- │ │ │ ├── flags: ignore_visibility
+ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :lambda
@@ -505,11 +582,14 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (40,9)-(41,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: [:_]
│ │ │ ├── parameters:
│ │ │ │ @ BlockParametersNode (location: (40,12)-(40,15))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── parameters:
│ │ │ │ │ @ ParametersNode (location: (40,13)-(40,14))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── requireds: (length: 1)
│ │ │ │ │ │ └── @ RequiredParameterNode (location: (40,13)-(40,14))
│ │ │ │ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/indented_file_end.txt b/test/prism/snapshots/indented_file_end.txt
index aa43ec5a1e..6160f6b51e 100644
--- a/test/prism/snapshots/indented_file_end.txt
+++ b/test/prism/snapshots/indented_file_end.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,4)-(3,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,4)-(3,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,4)-(3,7))
+ ├── flags: newline
├── name: :hi
├── name_loc: (1,8)-(1,10) = "hi"
├── receiver: ∅
diff --git a/test/prism/snapshots/integer_operations.txt b/test/prism/snapshots/integer_operations.txt
index 4dda43e38c..39a2d8eebf 100644
--- a/test/prism/snapshots/integer_operations.txt
+++ b/test/prism/snapshots/integer_operations.txt
@@ -1,13 +1,15 @@
@ ProgramNode (location: (1,0)-(63,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(63,7))
+ ├── flags: ∅
└── body: (length: 32)
├── @ 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,10 +19,10 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (3,1)-(3,2))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :~
@@ -30,10 +32,10 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (5,0)-(5,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (5,0)-(5,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :!=
@@ -44,15 +46,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (5,5)-(5,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (7,0)-(7,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (7,0)-(7,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :!~
@@ -63,15 +65,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (7,5)-(7,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (9,0)-(9,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (9,0)-(9,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :%
@@ -82,15 +84,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (9,4)-(9,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (11,0)-(11,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (11,0)-(11,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :&
@@ -101,15 +103,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (11,4)-(11,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (13,0)-(13,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (13,0)-(13,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :*
@@ -120,15 +122,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (13,4)-(13,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (15,0)-(15,4))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (15,0)-(15,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :**
@@ -139,15 +141,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (15,3)-(15,4))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (17,0)-(17,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (17,0)-(17,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :+
@@ -158,15 +160,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (17,4)-(17,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (19,0)-(19,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (19,0)-(19,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :-
@@ -177,15 +179,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (19,4)-(19,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (21,0)-(21,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (21,0)-(21,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :/
@@ -196,18 +198,18 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (21,4)-(21,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (23,0)-(23,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (23,0)-(23,3))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (23,0)-(23,1))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :/
@@ -218,7 +220,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (23,2)-(23,3))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
@@ -231,15 +233,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (23,4)-(23,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (25,0)-(25,5))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver:
│ │ @ IntegerNode (location: (25,0)-(25,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :<
@@ -250,15 +252,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (25,4)-(25,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (27,0)-(27,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (27,0)-(27,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :<<
@@ -269,15 +271,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (27,5)-(27,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (29,0)-(29,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver:
│ │ @ IntegerNode (location: (29,0)-(29,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :<=
@@ -288,15 +290,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (29,5)-(29,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (31,0)-(31,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (31,0)-(31,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :<=>
@@ -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) = "(?<foo>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) = "(?<a\\\nb>)"
│ │ │ ├── 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) = "(?<abc>)(?<abc>)"
│ │ │ ├── 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) = "(?<a b>)"
│ │ ├── 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) = "(?<a>)"
│ │ │ │ ├── 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) = "(?<foo>)"
│ │ │ ├── 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) = "(?<Foo>)"
│ │ ├── 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) = "(?<nil>)"
│ │ ├── 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) = "(?<nil>)"
│ │ │ ├── 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(?<a>.)\x{E285}\xA9(?<b>.)"
│ │ │ ├── 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) = "<<A"
│ │ ├── parts: (length: 3)
│ │ │ ├── @ EmbeddedStatementsNode (location: (2,0)-(2,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (2,0)-(2,2) = "\#{"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (2,2)-(2,5))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ StringNode (location: (2,2)-(2,5))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: (2,2)-(2,5) = "<<B"
│ │ │ │ │ ├── content_loc: (3,0)-(4,0) = "b\n"
│ │ │ │ │ ├── closing_loc: (4,0)-(5,0) = "B\n"
│ │ │ │ │ └── unescaped: "b\n"
│ │ │ │ └── closing_loc: (2,5)-(2,6) = "}"
│ │ │ ├── @ StringNode (location: (2,6)-(3,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (2,6)-(3,0) = "\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "\n"
│ │ │ └── @ StringNode (location: (5,0)-(6,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (5,0)-(6,0) = "a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ └── closing_loc: (6,0)-(7,0) = "A\n"
│ └── @ IntegerNode (location: (7,0)-(7,1))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 0
├── opening_loc: (1,0)-(1,1) = "["
└── closing_loc: (7,1)-(7,2) = "]"
diff --git a/test/prism/snapshots/seattlerb/heredoc_squiggly.txt b/test/prism/snapshots/seattlerb/heredoc_squiggly.txt
index 9bab044ace..2f9f054832 100644
--- a/test/prism/snapshots/seattlerb/heredoc_squiggly.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_squiggly.txt
@@ -1,31 +1,34 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
├── value:
│ @ InterpolatedStringNode (location: (1,4)-(1,12))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── opening_loc: (1,4)-(1,12) = "<<~\"EOF\""
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (2,0)-(3,0) = " x\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "x\n"
│ │ ├── @ StringNode (location: (3,0)-(4,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,0)-(4,0) = " y\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "y\n"
│ │ └── @ StringNode (location: (4,0)-(5,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (4,0)-(5,0) = " z\n"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt b/test/prism/snapshots/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt
index e12014afa5..ce8f1d7043 100644
--- a/test/prism/snapshots/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_squiggly_blank_line_plus_interpolation.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,20))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,20))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,20))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
@@ -27,15 +30,17 @@
│ │ │ ├── opening_loc: (1,8)-(1,14) = "<<~EOF"
│ │ │ ├── parts: (length: 3)
│ │ │ │ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (2,0)-(3,0) = "\n"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "\n"
│ │ │ │ ├── @ EmbeddedStatementsNode (location: (3,4)-(3,10))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (3,4)-(3,6) = "\#{"
│ │ │ │ │ ├── statements:
│ │ │ │ │ │ @ StatementsNode (location: (3,6)-(3,9))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ └── @ CallNode (location: (3,6)-(3,9))
│ │ │ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -49,7 +54,7 @@
│ │ │ │ │ │ └── block: ∅
│ │ │ │ │ └── closing_loc: (3,9)-(3,10) = "}"
│ │ │ │ └── @ StringNode (location: (3,10)-(4,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (3,10)-(4,0) = "baz\n"
│ │ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt b/test/prism/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt
index 8596647e72..06921ce78b 100644
--- a/test/prism/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_squiggly_blank_lines.txt
@@ -1,31 +1,34 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,10))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
├── value:
│ @ InterpolatedStringNode (location: (1,4)-(1,10))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── opening_loc: (1,4)-(1,10) = "<<~EOF"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (2,0)-(3,0) = " x\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "x\n"
│ │ ├── @ StringNode (location: (3,0)-(4,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,0)-(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) = " z\n"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_squiggly_empty.txt b/test/prism/snapshots/seattlerb/heredoc_squiggly_empty.txt
index c998f19984..28edecc527 100644
--- a/test/prism/snapshots/seattlerb/heredoc_squiggly_empty.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_squiggly_empty.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,4))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,4) = "<<~A"
├── content_loc: (2,0)-(2,0) = ""
├── closing_loc: (2,0)-(3,0) = "A\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_squiggly_interp.txt b/test/prism/snapshots/seattlerb/heredoc_squiggly_interp.txt
index d34f89ff9c..d2448074e8 100644
--- a/test/prism/snapshots/seattlerb/heredoc_squiggly_interp.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_squiggly_interp.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,10))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
@@ -13,34 +16,36 @@
│ ├── opening_loc: (1,4)-(1,10) = "<<~EOF"
│ ├── parts: (length: 5)
│ │ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (2,0)-(3,0) = " w\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " w\n"
│ │ ├── @ StringNode (location: (3,0)-(3,3))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,0)-(3,3) = " x"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "x"
│ │ ├── @ EmbeddedStatementsNode (location: (3,3)-(3,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,3)-(3,5) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (3,5)-(3,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (3,5)-(3,7))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 42
│ │ │ └── closing_loc: (3,7)-(3,8) = "}"
│ │ ├── @ StringNode (location: (3,8)-(4,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,8)-(4,0) = " y\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " y\n"
│ │ └── @ StringNode (location: (4,0)-(5,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (4,0)-(5,0) = " z\n"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_squiggly_no_indent.txt b/test/prism/snapshots/seattlerb/heredoc_squiggly_no_indent.txt
index 7c17bc4820..4dc7ae3676 100644
--- a/test/prism/snapshots/seattlerb/heredoc_squiggly_no_indent.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_squiggly_no_indent.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,4))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,4) = "<<~A"
├── content_loc: (2,0)-(3,0) = "a\n"
├── closing_loc: (3,0)-(4,0) = "A\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_squiggly_tabs.txt b/test/prism/snapshots/seattlerb/heredoc_squiggly_tabs.txt
index 311d7bc1b7..124e1618e1 100644
--- a/test/prism/snapshots/seattlerb/heredoc_squiggly_tabs.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_squiggly_tabs.txt
@@ -1,25 +1,28 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
├── value:
│ @ InterpolatedStringNode (location: (1,4)-(1,12))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── opening_loc: (1,4)-(1,12) = "<<~\"EOF\""
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (2,0)-(3,0) = " blah blah\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "blah blah\n"
│ │ └── @ StringNode (location: (3,0)-(4,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (3,0)-(4,0) = "\t blah blah\n"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt b/test/prism/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt
index 3150f807a2..b15074f8ac 100644
--- a/test/prism/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_squiggly_tabs_extra.txt
@@ -1,25 +1,28 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
├── value:
│ @ InterpolatedStringNode (location: (1,4)-(1,12))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── opening_loc: (1,4)-(1,12) = "<<~\"EOF\""
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (2,0)-(3,0) = " blah blah\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "blah blah\n"
│ │ └── @ StringNode (location: (3,0)-(4,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (3,0)-(4,0) = " \tblah blah\n"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt b/test/prism/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt
index 85c3d2df6d..06aeaa2e1b 100644
--- a/test/prism/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_squiggly_visually_blank_lines.txt
@@ -1,31 +1,34 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,10))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
├── value:
│ @ InterpolatedStringNode (location: (1,4)-(1,10))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── opening_loc: (1,4)-(1,10) = "<<~EOF"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (2,0)-(3,0) = " x\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "x\n"
│ │ ├── @ StringNode (location: (3,0)-(4,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,0)-(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) = " z\n"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt b/test/prism/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt
index bc05047b40..758a4c9122 100644
--- a/test/prism/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_trailing_slash_continued_call.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(4,6))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,6))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(4,6))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ StringNode (location: (1,0)-(1,5))
│ ├── flags: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_unicode.txt b/test/prism/snapshots/seattlerb/heredoc_unicode.txt
index 2c72854324..fd4dac3647 100644
--- a/test/prism/snapshots/seattlerb/heredoc_unicode.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_unicode.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,9))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,9) = "<<OOTPÜT"
├── content_loc: (2,0)-(3,0) = ".\n"
├── closing_loc: (3,0)-(4,0) = "OOTPÜT\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt b/test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt
index 43bb8d5ea8..8d1bef5220 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,5) = "<<EOS"
├── content_loc: (2,0)-(4,0) = "foo\\rbar\nbaz\\r\n"
├── closing_loc: (4,0)-(5,0) = "EOS\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt b/test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt
index 2ef6763389..3c932074f4 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_carriage_return_escapes_windows.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,5) = "<<EOS"
├── content_loc: (2,0)-(4,0) = "foo\\rbar\r\nbaz\\r\r\n"
├── closing_loc: (4,0)-(5,0) = "EOS\r\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt b/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt
index fbee030100..224009a65c 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_horrible_mix.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,7))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,7) = "<<'eot'"
├── content_loc: (2,0)-(3,0) = "body\r\n"
├── closing_loc: (3,0)-(4,0) = "eot\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt b/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt
index b59203bc4e..a357f216fa 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,5) = "<<EOS"
├── content_loc: (2,0)-(4,0) = "foo\rbar\r\nbaz\n"
├── closing_loc: (4,0)-(5,0) = "EOS\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt b/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt
index 36bc4c6560..83662484f7 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_extra_carriage_returns_windows.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,5) = "<<EOS"
├── content_loc: (2,0)-(4,0) = "foo\rbar\r\r\nbaz\r\n"
├── closing_loc: (4,0)-(5,0) = "EOS\r\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt b/test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt
index c4be1244dc..24e6839ba5 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes.txt
@@ -1,25 +1,29 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,5) = "<<EOS"
├── parts: (length: 3)
│ ├── @ StringNode (location: (2,0)-(2,5))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (2,0)-(2,5) = "foo\\r"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo\r"
│ ├── @ EmbeddedVariableNode (location: (2,5)-(2,10))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (2,5)-(2,6) = "#"
│ │ └── variable:
│ │ @ InstanceVariableReadNode (location: (2,6)-(2,10))
+ │ │ ├── flags: ∅
│ │ └── name: :@bar
│ └── @ StringNode (location: (2,10)-(3,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (2,10)-(3,0) = "\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt b/test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt
index c2290cec13..a4cbf900c4 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_interpolation_and_carriage_return_escapes_windows.txt
@@ -1,25 +1,29 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,5) = "<<EOS"
├── parts: (length: 3)
│ ├── @ StringNode (location: (2,0)-(2,5))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (2,0)-(2,5) = "foo\\r"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo\r"
│ ├── @ EmbeddedVariableNode (location: (2,5)-(2,10))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (2,5)-(2,6) = "#"
│ │ └── variable:
│ │ @ InstanceVariableReadNode (location: (2,6)-(2,10))
+ │ │ ├── flags: ∅
│ │ └── name: :@bar
│ └── @ StringNode (location: (2,10)-(3,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (2,10)-(3,0) = "\r\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt b/test/prism/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt
index 6e1648f659..cdea468fed 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_not_global_interpolation.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,10))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,10) = "<<-HEREDOC"
├── content_loc: (2,0)-(3,0) = "\#${\n"
├── closing_loc: (3,0)-(4,0) = "HEREDOC\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt b/test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt
index 6a535c6472..9936738579 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,5) = "<<EOS"
├── content_loc: (2,0)-(5,0) = "\r\n\r\r\n\\r\n"
├── closing_loc: (5,0)-(6,0) = "EOS\n"
diff --git a/test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt b/test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt
index 6539846ff1..55dfd316ac 100644
--- a/test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt
+++ b/test/prism/snapshots/seattlerb/heredoc_with_only_carriage_returns_windows.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,5) = "<<EOS"
├── content_loc: (2,0)-(5,0) = "\r\r\n\r\r\r\n\\r\r\n"
├── closing_loc: (5,0)-(6,0) = "EOS\r\n"
diff --git a/test/prism/snapshots/seattlerb/if_elsif.txt b/test/prism/snapshots/seattlerb/if_elsif.txt
index 034850158c..a3febd97a5 100644
--- a/test/prism/snapshots/seattlerb/if_elsif.txt
+++ b/test/prism/snapshots/seattlerb/if_elsif.txt
@@ -1,22 +1,26 @@
@ ProgramNode (location: (1,0)-(1,18))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,18))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,18))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ IntegerNode (location: (1,3)-(1,4))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── then_keyword_loc: ∅
├── statements: ∅
├── consequent:
│ @ IfNode (location: (1,6)-(1,18))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (1,6)-(1,11) = "elsif"
│ ├── predicate:
│ │ @ IntegerNode (location: (1,12)-(1,13))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── then_keyword_loc: ∅
│ ├── statements: ∅
diff --git a/test/prism/snapshots/seattlerb/if_symbol.txt b/test/prism/snapshots/seattlerb/if_symbol.txt
index 85ec52b4c8..1a0be527e5 100644
--- a/test/prism/snapshots/seattlerb/if_symbol.txt
+++ b/test/prism/snapshots/seattlerb/if_symbol.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ CallNode (location: (1,3)-(1,7))
@@ -18,7 +21,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ 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: ∅
diff --git a/test/prism/snapshots/seattlerb/in_expr_no_case.txt b/test/prism/snapshots/seattlerb/in_expr_no_case.txt
index 0a026c08db..97493c73c1 100644
--- a/test/prism/snapshots/seattlerb/in_expr_no_case.txt
+++ b/test/prism/snapshots/seattlerb/in_expr_no_case.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,16))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,16))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MatchPredicateNode (location: (1,0)-(1,16))
+ ├── flags: newline
├── value:
│ @ StringNode (location: (1,0)-(1,6))
│ ├── flags: ∅
@@ -13,5 +16,6 @@
│ └── unescaped: "woot"
├── pattern:
│ @ ConstantReadNode (location: (1,10)-(1,16))
+ │ ├── flags: ∅
│ └── name: :String
└── operator_loc: (1,7)-(1,9) = "in"
diff --git a/test/prism/snapshots/seattlerb/index_0.txt b/test/prism/snapshots/seattlerb/index_0.txt
index 9771e9c2bd..186e84dd64 100644
--- a/test/prism/snapshots/seattlerb/index_0.txt
+++ b/test/prism/snapshots/seattlerb/index_0.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
diff --git a/test/prism/snapshots/seattlerb/index_0_opasgn.txt b/test/prism/snapshots/seattlerb/index_0_opasgn.txt
index 322eae9907..036128546a 100644
--- a/test/prism/snapshots/seattlerb/index_0_opasgn.txt
+++ b/test/prism/snapshots/seattlerb/index_0_opasgn.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IndexOperatorWriteNode (location: (1,0)-(1,8))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/integer_with_if_modifier.txt b/test/prism/snapshots/seattlerb/integer_with_if_modifier.txt
index 2108c1f0a0..18a607cd10 100644
--- a/test/prism/snapshots/seattlerb/integer_with_if_modifier.txt
+++ b/test/prism/snapshots/seattlerb/integer_with_if_modifier.txt
@@ -1,18 +1,23 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── if_keyword_loc: (1,5)-(1,7) = "if"
├── predicate:
│ @ TrueNode (location: (1,8)-(1,12))
+ │ └── flags: static_literal
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (1,0)-(1,5))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ IntegerNode (location: (1,0)-(1,5))
- │ ├── flags: decimal
+ │ ├── flags: newline, static_literal, decimal
│ └── value: 1234
├── consequent: ∅
└── end_keyword_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt b/test/prism/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt
index ab231cf539..9a4d00cb29 100644
--- a/test/prism/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt
+++ b/test/prism/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt
@@ -1,19 +1,21 @@
@ ProgramNode (location: (1,0)-(5,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(4,1))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (2,0)-(2,1))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (2,0)-(2,1) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (3,0)-(3,1))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (3,0)-(3,1) = "b"
│ │ ├── closing_loc: ∅
@@ -21,5 +23,5 @@
│ ├── opening_loc: (1,0)-(1,3) = "%I("
│ └── closing_loc: (4,0)-(4,1) = ")"
└── @ IntegerNode (location: (5,0)-(5,1))
- ├── flags: decimal
+ ├── flags: newline, static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/seattlerb/interpolated_word_array_line_breaks.txt b/test/prism/snapshots/seattlerb/interpolated_word_array_line_breaks.txt
index 933e5de627..88054f0935 100644
--- a/test/prism/snapshots/seattlerb/interpolated_word_array_line_breaks.txt
+++ b/test/prism/snapshots/seattlerb/interpolated_word_array_line_breaks.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(4,1))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ StringNode (location: (2,0)-(2,1))
│ │ │ ├── flags: ∅
@@ -21,5 +23,5 @@
│ ├── opening_loc: (1,0)-(1,3) = "%W("
│ └── closing_loc: (4,0)-(4,1) = ")"
└── @ IntegerNode (location: (5,0)-(5,1))
- ├── flags: decimal
+ ├── flags: newline, static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/seattlerb/iter_args_1.txt b/test/prism/snapshots/seattlerb/iter_args_1.txt
index f76bbfc559..7c3e7a3e22 100644
--- a/test/prism/snapshots/seattlerb/iter_args_1.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_1.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
@@ -14,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,11))
+ ├── flags: ∅
├── locals: [:a, :b]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,9))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ RequiredParameterNode (location: (1,5)-(1,6))
│ │ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/seattlerb/iter_args_10_1.txt b/test/prism/snapshots/seattlerb/iter_args_10_1.txt
index b8aaae800a..b8d908757a 100644
--- a/test/prism/snapshots/seattlerb/iter_args_10_1.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_10_1.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,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,21))
+ ├── flags: ∅
├── locals: [:a, :b, :c]
├── 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,10)-(1,11) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,12)-(1,14))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,16)-(1,18))
diff --git a/test/prism/snapshots/seattlerb/iter_args_10_2.txt b/test/prism/snapshots/seattlerb/iter_args_10_2.txt
index 833f6429dc..4c668599e1 100644
--- a/test/prism/snapshots/seattlerb/iter_args_10_2.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_10_2.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: :f
@@ -14,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,25))
+ ├── flags: ∅
├── locals: [:a, :b, :c, :d]
├── 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
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,16)-(1,18))
diff --git a/test/prism/snapshots/seattlerb/iter_args_11_1.txt b/test/prism/snapshots/seattlerb/iter_args_11_1.txt
index e4d2f79474..6e08e008ed 100644
--- a/test/prism/snapshots/seattlerb/iter_args_11_1.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_11_1.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, :c, :d]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,22))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,21))
+ │ │ ├── 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:
│ │ │ @ RestParameterNode (location: (1,16)-(1,18))
diff --git a/test/prism/snapshots/seattlerb/iter_args_11_2.txt b/test/prism/snapshots/seattlerb/iter_args_11_2.txt
index 07a0e5ed9d..04a15a3310 100644
--- a/test/prism/snapshots/seattlerb/iter_args_11_2.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_11_2.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,28))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,28))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,28))
- ├── 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,28))
+ ├── flags: ∅
├── locals: [:a, :b, :c, :d, :e]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,26))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,25))
+ │ │ ├── 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:
│ │ │ @ RestParameterNode (location: (1,16)-(1,18))
diff --git a/test/prism/snapshots/seattlerb/iter_args_2__19.txt b/test/prism/snapshots/seattlerb/iter_args_2__19.txt
index a905286f47..3015ea93c5 100644
--- a/test/prism/snapshots/seattlerb/iter_args_2__19.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_2__19.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,13 +16,17 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,14))
+ ├── 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: ∅
diff --git a/test/prism/snapshots/seattlerb/iter_args_3.txt b/test/prism/snapshots/seattlerb/iter_args_3.txt
index 66782f0793..d85fd374aa 100644
--- a/test/prism/snapshots/seattlerb/iter_args_3.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_3.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,16 +16,20 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,20))
+ ├── flags: ∅
├── locals: [:a, :b, :c, :d]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,18))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,17))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 3)
│ │ │ ├── @ 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/iter_args_4.txt b/test/prism/snapshots/seattlerb/iter_args_4.txt
index c4f2b47a03..8f5a7043fe 100644
--- a/test/prism/snapshots/seattlerb/iter_args_4.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_4.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,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,16))
+ ├── flags: ∅
├── locals: [:a, :b, :c]
├── 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/iter_args_5.txt b/test/prism/snapshots/seattlerb/iter_args_5.txt
index 44940629b4..227703347d 100644
--- a/test/prism/snapshots/seattlerb/iter_args_5.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_5.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: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6))
│ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/seattlerb/iter_args_6.txt b/test/prism/snapshots/seattlerb/iter_args_6.txt
index df3a405dff..40f75f5e83 100644
--- a/test/prism/snapshots/seattlerb/iter_args_6.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_6.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,11 +16,14 @@
├── 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)
│ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6))
│ │ │ ├── flags: ∅
@@ -31,7 +36,7 @@
│ │ │ ├── operator_loc: (1,9)-(1,10) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,10)-(1,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── rest: ∅
│ │ ├── posts: (length: 1)
diff --git a/test/prism/snapshots/seattlerb/iter_args_7_1.txt b/test/prism/snapshots/seattlerb/iter_args_7_1.txt
index 3f65fb8dc0..fd0934b6f2 100644
--- a/test/prism/snapshots/seattlerb/iter_args_7_1.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_7_1.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,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,18))
+ ├── flags: ∅
├── locals: [:a, :b]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,16))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,15))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,11))
@@ -28,7 +33,7 @@
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,13)-(1,15))
diff --git a/test/prism/snapshots/seattlerb/iter_args_7_2.txt b/test/prism/snapshots/seattlerb/iter_args_7_2.txt
index 112a5a1b6b..7fe4912654 100644
--- a/test/prism/snapshots/seattlerb/iter_args_7_2.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_7_2.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,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,22))
+ ├── flags: ∅
├── locals: [:a, :b, :c]
├── 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,11))
@@ -28,7 +33,7 @@
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,13)-(1,15))
diff --git a/test/prism/snapshots/seattlerb/iter_args_8_1.txt b/test/prism/snapshots/seattlerb/iter_args_8_1.txt
index 5591fcfc69..89d73272ed 100644
--- a/test/prism/snapshots/seattlerb/iter_args_8_1.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_8_1.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,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,21))
+ ├── flags: ∅
├── locals: [:a, :b, :c]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,19))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,18))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,11))
@@ -28,7 +33,7 @@
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,13)-(1,15))
diff --git a/test/prism/snapshots/seattlerb/iter_args_8_2.txt b/test/prism/snapshots/seattlerb/iter_args_8_2.txt
index 8cb061d5a7..5cb728ec55 100644
--- a/test/prism/snapshots/seattlerb/iter_args_8_2.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_8_2.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: :f
@@ -14,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,25))
+ ├── flags: ∅
├── locals: [:a, :b, :c, :d]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,23))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,22))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,11))
@@ -28,7 +33,7 @@
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,13)-(1,15))
diff --git a/test/prism/snapshots/seattlerb/iter_args_9_1.txt b/test/prism/snapshots/seattlerb/iter_args_9_1.txt
index 70b2a6cb19..8f47ae6b54 100644
--- a/test/prism/snapshots/seattlerb/iter_args_9_1.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_9_1.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]
├── 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,11))
@@ -28,7 +33,7 @@
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── rest: ∅
│ │ ├── posts: (length: 1)
diff --git a/test/prism/snapshots/seattlerb/iter_args_9_2.txt b/test/prism/snapshots/seattlerb/iter_args_9_2.txt
index cad8b47e7f..686c249cbf 100644
--- a/test/prism/snapshots/seattlerb/iter_args_9_2.txt
+++ b/test/prism/snapshots/seattlerb/iter_args_9_2.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,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,21))
+ ├── flags: ∅
├── locals: [:a, :b, :c]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,19))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,18))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,11))
@@ -28,7 +33,7 @@
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── rest: ∅
│ │ ├── posts: (length: 1)
diff --git a/test/prism/snapshots/seattlerb/iter_kwarg.txt b/test/prism/snapshots/seattlerb/iter_kwarg.txt
index 13b9027661..c5d5a74768 100644
--- a/test/prism/snapshots/seattlerb/iter_kwarg.txt
+++ b/test/prism/snapshots/seattlerb/iter_kwarg.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]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,10))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -30,7 +35,7 @@
│ │ │ ├── name_loc: (1,5)-(1,7) = "b:"
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,8)-(1,9))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/prism/snapshots/seattlerb/iter_kwarg_kwsplat.txt b/test/prism/snapshots/seattlerb/iter_kwarg_kwsplat.txt
index 321e15cb2b..bab054537b 100644
--- a/test/prism/snapshots/seattlerb/iter_kwarg_kwsplat.txt
+++ b/test/prism/snapshots/seattlerb/iter_kwarg_kwsplat.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: 0)
│ │ ├── rest: ∅
@@ -30,7 +35,7 @@
│ │ │ ├── name_loc: (1,5)-(1,7) = "b:"
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,8)-(1,9))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (1,11)-(1,14))
diff --git a/test/prism/snapshots/seattlerb/label_vs_string.txt b/test/prism/snapshots/seattlerb/label_vs_string.txt
index c8d7af8f48..1de1fd1ff7 100644
--- a/test/prism/snapshots/seattlerb/label_vs_string.txt
+++ b/test/prism/snapshots/seattlerb/label_vs_string.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,1))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(2,1))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,4))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/lambda_do_vs_brace.txt b/test/prism/snapshots/seattlerb/lambda_do_vs_brace.txt
index afc0d3d56f..dc08fa4de3 100644
--- a/test/prism/snapshots/seattlerb/lambda_do_vs_brace.txt
+++ b/test/prism/snapshots/seattlerb/lambda_do_vs_brace.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(7,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(7,9))
+ ├── flags: ∅
└── body: (length: 4)
├── @ CallNode (location: (1,0)-(1,11))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -15,6 +17,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LambdaNode (location: (1,2)-(1,11))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── operator_loc: (1,2)-(1,4) = "->"
│ │ ├── opening_loc: (1,5)-(1,7) = "do"
@@ -24,7 +27,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,7))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -35,6 +38,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LambdaNode (location: (3,2)-(3,7))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── operator_loc: (3,2)-(3,4) = "->"
│ │ ├── opening_loc: (3,5)-(3,6) = "{"
@@ -44,7 +48,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (5,0)-(5,13))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -55,12 +59,14 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LambdaNode (location: (5,2)-(5,13))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── operator_loc: (5,2)-(5,4) = "->"
│ │ ├── opening_loc: (5,7)-(5,9) = "do"
│ │ ├── closing_loc: (5,10)-(5,13) = "end"
│ │ ├── parameters:
│ │ │ @ BlockParametersNode (location: (5,4)-(5,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── parameters: ∅
│ │ │ ├── locals: (length: 0)
│ │ │ ├── opening_loc: (5,4)-(5,5) = "("
@@ -69,7 +75,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (7,0)-(7,9))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :f
@@ -80,12 +86,14 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LambdaNode (location: (7,2)-(7,9))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── operator_loc: (7,2)-(7,4) = "->"
│ ├── opening_loc: (7,7)-(7,8) = "{"
│ ├── closing_loc: (7,8)-(7,9) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (7,4)-(7,6))
+ │ │ ├── flags: ∅
│ │ ├── parameters: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (7,4)-(7,5) = "("
diff --git a/test/prism/snapshots/seattlerb/lasgn_arg_rescue_arg.txt b/test/prism/snapshots/seattlerb/lasgn_arg_rescue_arg.txt
index 7bbef7055a..30324ac560 100644
--- a/test/prism/snapshots/seattlerb/lasgn_arg_rescue_arg.txt
+++ b/test/prism/snapshots/seattlerb/lasgn_arg_rescue_arg.txt
@@ -1,21 +1,25 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
├── value:
│ @ RescueModifierNode (location: (1,4)-(1,14))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ IntegerNode (location: (1,4)-(1,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── keyword_loc: (1,6)-(1,12) = "rescue"
│ └── rescue_expression:
│ @ IntegerNode (location: (1,13)-(1,14))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
└── operator_loc: (1,2)-(1,3) = "="
diff --git a/test/prism/snapshots/seattlerb/lasgn_call_bracket_rescue_arg.txt b/test/prism/snapshots/seattlerb/lasgn_call_bracket_rescue_arg.txt
index 521fceaf1b..e6fba67dbd 100644
--- a/test/prism/snapshots/seattlerb/lasgn_call_bracket_rescue_arg.txt
+++ b/test/prism/snapshots/seattlerb/lasgn_call_bracket_rescue_arg.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:
│ @ RescueModifierNode (location: (1,4)-(1,17))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (1,4)-(1,8))
│ │ ├── flags: ignore_visibility
@@ -22,13 +26,13 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,6)-(1,7))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: (1,7)-(1,8) = ")"
│ │ └── block: ∅
│ ├── keyword_loc: (1,9)-(1,15) = "rescue"
│ └── rescue_expression:
│ @ IntegerNode (location: (1,16)-(1,17))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
└── operator_loc: (1,2)-(1,3) = "="
diff --git a/test/prism/snapshots/seattlerb/lasgn_call_nobracket_rescue_arg.txt b/test/prism/snapshots/seattlerb/lasgn_call_nobracket_rescue_arg.txt
index d730fb51cb..15e77296ce 100644
--- a/test/prism/snapshots/seattlerb/lasgn_call_nobracket_rescue_arg.txt
+++ b/test/prism/snapshots/seattlerb/lasgn_call_nobracket_rescue_arg.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,16))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,16))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,16))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
├── value:
│ @ RescueModifierNode (location: (1,4)-(1,16))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (1,4)-(1,7))
│ │ ├── flags: ignore_visibility
@@ -22,13 +26,13 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,6)-(1,7))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── keyword_loc: (1,8)-(1,14) = "rescue"
│ └── rescue_expression:
│ @ IntegerNode (location: (1,15)-(1,16))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
└── operator_loc: (1,2)-(1,3) = "="
diff --git a/test/prism/snapshots/seattlerb/lasgn_command.txt b/test/prism/snapshots/seattlerb/lasgn_command.txt
index d6ed787b26..5aa47305c2 100644
--- a/test/prism/snapshots/seattlerb/lasgn_command.txt
+++ b/test/prism/snapshots/seattlerb/lasgn_command.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,9))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
@@ -30,7 +33,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/lasgn_env.txt b/test/prism/snapshots/seattlerb/lasgn_env.txt
index a0ada99a9b..1f3a6c80d0 100644
--- a/test/prism/snapshots/seattlerb/lasgn_env.txt
+++ b/test/prism/snapshots/seattlerb/lasgn_env.txt
@@ -1,14 +1,17 @@
@ ProgramNode (location: (1,0)-(1,6))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,6))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
├── value:
│ @ IntegerNode (location: (1,4)-(1,6))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 42
└── operator_loc: (1,2)-(1,3) = "="
diff --git a/test/prism/snapshots/seattlerb/lasgn_ivar_env.txt b/test/prism/snapshots/seattlerb/lasgn_ivar_env.txt
index 5675730477..d34b46cba1 100644
--- a/test/prism/snapshots/seattlerb/lasgn_ivar_env.txt
+++ b/test/prism/snapshots/seattlerb/lasgn_ivar_env.txt
@@ -1,13 +1,16 @@
@ ProgramNode (location: (1,0)-(1,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InstanceVariableWriteNode (location: (1,0)-(1,7))
+ ├── flags: newline
├── name: :@a
├── name_loc: (1,0)-(1,2) = "@a"
├── value:
│ @ IntegerNode (location: (1,5)-(1,7))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 42
└── operator_loc: (1,3)-(1,4) = "="
diff --git a/test/prism/snapshots/seattlerb/lasgn_lasgn_command_call.txt b/test/prism/snapshots/seattlerb/lasgn_lasgn_command_call.txt
index bb4b64e88c..012be1771a 100644
--- a/test/prism/snapshots/seattlerb/lasgn_lasgn_command_call.txt
+++ b/test/prism/snapshots/seattlerb/lasgn_lasgn_command_call.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,11))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
├── value:
│ @ LocalVariableWriteNode (location: (1,4)-(1,11))
+ │ ├── flags: ∅
│ ├── name: :b
│ ├── depth: 0
│ ├── name_loc: (1,4)-(1,5) = "b"
@@ -25,7 +29,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,10)-(1,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
diff --git a/test/prism/snapshots/seattlerb/lasgn_middle_splat.txt b/test/prism/snapshots/seattlerb/lasgn_middle_splat.txt
index c113fef13f..ebd47f54b6 100644
--- a/test/prism/snapshots/seattlerb/lasgn_middle_splat.txt
+++ b/test/prism/snapshots/seattlerb/lasgn_middle_splat.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (1,0)-(1,1) = "a"
@@ -22,6 +25,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── @ SplatNode (location: (1,7)-(1,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (1,7)-(1,8) = "*"
│ │ │ └── expression:
│ │ │ @ CallNode (location: (1,8)-(1,9))
diff --git a/test/prism/snapshots/seattlerb/magic_encoding_comment.txt b/test/prism/snapshots/seattlerb/magic_encoding_comment.txt
index 9c4ca884d2..9d4cec9231 100644
--- a/test/prism/snapshots/seattlerb/magic_encoding_comment.txt
+++ b/test/prism/snapshots/seattlerb/magic_encoding_comment.txt
@@ -1,35 +1,44 @@
@ ProgramNode (location: (2,0)-(3,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (2,0)-(3,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ClassNode (location: (2,0)-(3,3))
+ ├── flags: newline
├── locals: []
├── class_keyword_loc: (2,0)-(2,5) = "class"
├── constant_path:
│ @ ConstantReadNode (location: (2,6)-(2,34))
+ │ ├── flags: ∅
│ └── name: :ExampleUTF8ClassNameVarietà
├── inheritance_operator_loc: ∅
├── superclass: ∅
├── body:
│ @ StatementsNode (location: (2,36)-(2,68))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ DefNode (location: (2,36)-(2,68))
+ │ ├── flags: newline
│ ├── name: :è
│ ├── name_loc: (2,45)-(2,47) = "è"
│ ├── receiver:
│ │ @ SelfNode (location: (2,40)-(2,44))
+ │ │ └── flags: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (2,49)-(2,63))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableWriteNode (location: (2,49)-(2,63))
+ │ │ ├── flags: newline
│ │ ├── name: :così
│ │ ├── depth: 0
│ │ ├── name_loc: (2,49)-(2,54) = "così"
│ │ ├── value:
│ │ │ @ SymbolNode (location: (2,57)-(2,63))
- │ │ │ ├── flags: ∅
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (2,57)-(2,58) = ":"
│ │ │ ├── value_loc: (2,58)-(2,63) = "però"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_anon_splat_arg.txt b/test/prism/snapshots/seattlerb/masgn_anon_splat_arg.txt
index 9ebcab3095..e0546c4ba3 100644
--- a/test/prism/snapshots/seattlerb/masgn_anon_splat_arg.txt
+++ b/test/prism/snapshots/seattlerb/masgn_anon_splat_arg.txt
@@ -1,16 +1,21 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,8))
+ ├── flags: newline
├── lefts: (length: 0)
├── rest:
│ @ SplatNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,0)-(1,1) = "*"
│ └── expression: ∅
├── rights: (length: 1)
│ └── @ LocalVariableTargetNode (location: (1,3)-(1,4))
+ │ ├── flags: ∅
│ ├── name: :a
│ └── depth: 0
├── lparen_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_arg_colon_arg.txt b/test/prism/snapshots/seattlerb/masgn_arg_colon_arg.txt
index 83613c42d1..5c22571e91 100644
--- a/test/prism/snapshots/seattlerb/masgn_arg_colon_arg.txt
+++ b/test/prism/snapshots/seattlerb/masgn_arg_colon_arg.txt
@@ -1,11 +1,15 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,11))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ └── @ CallTargetNode (location: (1,3)-(1,7))
diff --git a/test/prism/snapshots/seattlerb/masgn_arg_ident.txt b/test/prism/snapshots/seattlerb/masgn_arg_ident.txt
index f4c99648f0..83cd356423 100644
--- a/test/prism/snapshots/seattlerb/masgn_arg_ident.txt
+++ b/test/prism/snapshots/seattlerb/masgn_arg_ident.txt
@@ -1,11 +1,15 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,10))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ └── @ CallTargetNode (location: (1,3)-(1,6))
diff --git a/test/prism/snapshots/seattlerb/masgn_arg_splat_arg.txt b/test/prism/snapshots/seattlerb/masgn_arg_splat_arg.txt
index 48e58de076..c5a3b9433a 100644
--- a/test/prism/snapshots/seattlerb/masgn_arg_splat_arg.txt
+++ b/test/prism/snapshots/seattlerb/masgn_arg_splat_arg.txt
@@ -1,22 +1,29 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: [:a, :b, :c]
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── lefts: (length: 1)
│ └── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ ├── name: :a
│ └── depth: 0
├── rest:
│ @ SplatNode (location: (1,3)-(1,5))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,3)-(1,4) = "*"
│ └── expression:
│ @ LocalVariableTargetNode (location: (1,4)-(1,5))
+ │ ├── flags: ∅
│ ├── name: :b
│ └── depth: 0
├── rights: (length: 1)
│ └── @ LocalVariableTargetNode (location: (1,7)-(1,8))
+ │ ├── flags: ∅
│ ├── name: :c
│ └── depth: 0
├── lparen_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_colon2.txt b/test/prism/snapshots/seattlerb/masgn_colon2.txt
index a0dfe72ffc..59380bfcd6 100644
--- a/test/prism/snapshots/seattlerb/masgn_colon2.txt
+++ b/test/prism/snapshots/seattlerb/masgn_colon2.txt
@@ -1,14 +1,19 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ └── @ ConstantPathTargetNode (location: (1,3)-(1,7))
+ │ ├── flags: ∅
│ ├── parent:
│ │ @ CallNode (location: (1,3)-(1,4))
│ │ ├── flags: variable_call, ignore_visibility
@@ -30,13 +35,13 @@
├── operator_loc: (1,8)-(1,9) = "="
└── value:
@ ArrayNode (location: (1,10)-(1,14))
- ├── flags: ∅
+ ├── flags: static_literal
├── elements: (length: 2)
│ ├── @ IntegerNode (location: (1,10)-(1,11))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ IntegerNode (location: (1,13)-(1,14))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
├── opening_loc: ∅
└── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_colon3.txt b/test/prism/snapshots/seattlerb/masgn_colon3.txt
index f28ed7ecee..e8d0406d20 100644
--- a/test/prism/snapshots/seattlerb/masgn_colon3.txt
+++ b/test/prism/snapshots/seattlerb/masgn_colon3.txt
@@ -1,16 +1,21 @@
@ ProgramNode (location: (1,0)-(1,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,15))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ ConstantPathTargetNode (location: (1,0)-(1,3))
+ │ │ ├── flags: ∅
│ │ ├── parent: ∅
│ │ ├── name: :A
│ │ ├── delimiter_loc: (1,0)-(1,2) = "::"
│ │ └── name_loc: (1,2)-(1,3) = "A"
│ └── @ ConstantPathTargetNode (location: (1,5)-(1,8))
+ │ ├── flags: ∅
│ ├── parent: ∅
│ ├── name: :B
│ ├── delimiter_loc: (1,5)-(1,7) = "::"
@@ -22,13 +27,13 @@
├── operator_loc: (1,9)-(1,10) = "="
└── value:
@ ArrayNode (location: (1,11)-(1,15))
- ├── flags: ∅
+ ├── flags: static_literal
├── elements: (length: 2)
│ ├── @ IntegerNode (location: (1,11)-(1,12))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ IntegerNode (location: (1,14)-(1,15))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
├── opening_loc: ∅
└── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_command_call.txt b/test/prism/snapshots/seattlerb/masgn_command_call.txt
index 687ea38243..60162e0e42 100644
--- a/test/prism/snapshots/seattlerb/masgn_command_call.txt
+++ b/test/prism/snapshots/seattlerb/masgn_command_call.txt
@@ -1,15 +1,20 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,10))
+ ├── flags: newline
├── lefts: (length: 1)
│ └── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ ├── name: :a
│ └── depth: 0
├── rest:
│ @ ImplicitRestNode (location: (1,1)-(1,2))
+ │ └── flags: ∅
├── rights: (length: 0)
├── lparen_loc: ∅
├── rparen_loc: ∅
@@ -37,7 +42,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,9)-(1,10))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_double_paren.txt b/test/prism/snapshots/seattlerb/masgn_double_paren.txt
index 590df8fa07..7497801c26 100644
--- a/test/prism/snapshots/seattlerb/masgn_double_paren.txt
+++ b/test/prism/snapshots/seattlerb/masgn_double_paren.txt
@@ -1,16 +1,22 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,9))
+ ├── flags: newline
├── lefts: (length: 1)
│ └── @ MultiTargetNode (location: (1,1)-(1,6))
+ │ ├── flags: ∅
│ ├── lefts: (length: 2)
│ │ ├── @ LocalVariableTargetNode (location: (1,2)-(1,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :a
│ │ │ └── depth: 0
│ │ └── @ LocalVariableTargetNode (location: (1,4)-(1,5))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ ├── rest: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_lhs_splat.txt b/test/prism/snapshots/seattlerb/masgn_lhs_splat.txt
index 771dd7c040..459e13684f 100644
--- a/test/prism/snapshots/seattlerb/masgn_lhs_splat.txt
+++ b/test/prism/snapshots/seattlerb/masgn_lhs_splat.txt
@@ -1,15 +1,20 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── lefts: (length: 0)
├── rest:
│ @ SplatNode (location: (1,0)-(1,2))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,0)-(1,1) = "*"
│ └── expression:
│ @ LocalVariableTargetNode (location: (1,1)-(1,2))
+ │ ├── flags: ∅
│ ├── name: :a
│ └── depth: 0
├── rights: (length: 0)
@@ -18,16 +23,16 @@
├── operator_loc: (1,3)-(1,4) = "="
└── value:
@ ArrayNode (location: (1,5)-(1,12))
- ├── flags: ∅
+ ├── flags: static_literal
├── elements: (length: 3)
│ ├── @ IntegerNode (location: (1,5)-(1,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── @ IntegerNode (location: (1,8)-(1,9))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── @ IntegerNode (location: (1,11)-(1,12))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 3
├── opening_loc: ∅
└── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_paren.txt b/test/prism/snapshots/seattlerb/masgn_paren.txt
index 5d79774d5e..6418b6e9fc 100644
--- a/test/prism/snapshots/seattlerb/masgn_paren.txt
+++ b/test/prism/snapshots/seattlerb/masgn_paren.txt
@@ -1,14 +1,19 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (1,1)-(1,2))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,4)-(1,5))
+ │ ├── flags: ∅
│ ├── name: :b
│ └── depth: 0
├── rest: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_splat_arg.txt b/test/prism/snapshots/seattlerb/masgn_splat_arg.txt
index b8113b126f..0a80c9bbfd 100644
--- a/test/prism/snapshots/seattlerb/masgn_splat_arg.txt
+++ b/test/prism/snapshots/seattlerb/masgn_splat_arg.txt
@@ -1,19 +1,25 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,9))
+ ├── flags: newline
├── lefts: (length: 0)
├── rest:
│ @ SplatNode (location: (1,0)-(1,2))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,0)-(1,1) = "*"
│ └── expression:
│ @ LocalVariableTargetNode (location: (1,1)-(1,2))
+ │ ├── flags: ∅
│ ├── name: :a
│ └── depth: 0
├── rights: (length: 1)
│ └── @ LocalVariableTargetNode (location: (1,4)-(1,5))
+ │ ├── flags: ∅
│ ├── name: :b
│ └── depth: 0
├── lparen_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_splat_arg_arg.txt b/test/prism/snapshots/seattlerb/masgn_splat_arg_arg.txt
index a832aef1e0..1bd31b5ffc 100644
--- a/test/prism/snapshots/seattlerb/masgn_splat_arg_arg.txt
+++ b/test/prism/snapshots/seattlerb/masgn_splat_arg_arg.txt
@@ -1,22 +1,29 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: [:a, :b, :c]
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── lefts: (length: 0)
├── rest:
│ @ SplatNode (location: (1,0)-(1,2))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,0)-(1,1) = "*"
│ └── expression:
│ @ LocalVariableTargetNode (location: (1,1)-(1,2))
+ │ ├── flags: ∅
│ ├── name: :a
│ └── depth: 0
├── rights: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (1,4)-(1,5))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,7)-(1,8))
+ │ ├── flags: ∅
│ ├── name: :c
│ └── depth: 0
├── lparen_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/masgn_star.txt b/test/prism/snapshots/seattlerb/masgn_star.txt
index 3e01eef8a7..97fdbe0b0f 100644
--- a/test/prism/snapshots/seattlerb/masgn_star.txt
+++ b/test/prism/snapshots/seattlerb/masgn_star.txt
@@ -1,12 +1,16 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,5))
+ ├── flags: newline
├── lefts: (length: 0)
├── rest:
│ @ SplatNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,0)-(1,1) = "*"
│ └── expression: ∅
├── rights: (length: 0)
@@ -15,5 +19,5 @@
├── operator_loc: (1,2)-(1,3) = "="
└── value:
@ IntegerNode (location: (1,4)-(1,5))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/seattlerb/masgn_var_star_var.txt b/test/prism/snapshots/seattlerb/masgn_var_star_var.txt
index 37851efd6f..6c92113ff6 100644
--- a/test/prism/snapshots/seattlerb/masgn_var_star_var.txt
+++ b/test/prism/snapshots/seattlerb/masgn_var_star_var.txt
@@ -1,19 +1,25 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,11))
+ ├── flags: newline
├── lefts: (length: 1)
│ └── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ ├── name: :a
│ └── depth: 0
├── rest:
│ @ SplatNode (location: (1,3)-(1,4))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,3)-(1,4) = "*"
│ └── expression: ∅
├── rights: (length: 1)
│ └── @ LocalVariableTargetNode (location: (1,6)-(1,7))
+ │ ├── flags: ∅
│ ├── name: :b
│ └── depth: 0
├── lparen_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/messy_op_asgn_lineno.txt b/test/prism/snapshots/seattlerb/messy_op_asgn_lineno.txt
index edef23044a..b11d08a747 100644
--- a/test/prism/snapshots/seattlerb/messy_op_asgn_lineno.txt
+++ b/test/prism/snapshots/seattlerb/messy_op_asgn_lineno.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
@@ -15,14 +17,19 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (1,2)-(1,15))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,3)-(1,14))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ConstantPathOperatorWriteNode (location: (1,3)-(1,14))
+ │ │ ├── flags: newline
│ │ ├── target:
│ │ │ @ ConstantPathNode (location: (1,3)-(1,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── parent:
│ │ │ │ @ ConstantReadNode (location: (1,3)-(1,4))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :B
│ │ │ ├── name: :C
│ │ │ ├── delimiter_loc: (1,4)-(1,6) = "::"
diff --git a/test/prism/snapshots/seattlerb/method_call_assoc_trailing_comma.txt b/test/prism/snapshots/seattlerb/method_call_assoc_trailing_comma.txt
index 1bb8bd0bc1..62a45c5d8b 100644
--- a/test/prism/snapshots/seattlerb/method_call_assoc_trailing_comma.txt
+++ b/test/prism/snapshots/seattlerb/method_call_assoc_trailing_comma.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: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
@@ -28,13 +30,14 @@
│ ├── flags: ∅
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,4)-(1,8))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ IntegerNode (location: (1,4)-(1,5))
- │ │ ├── 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,5)-(1,7) = "=>"
├── closing_loc: (1,9)-(1,10) = ")"
diff --git a/test/prism/snapshots/seattlerb/method_call_trailing_comma.txt b/test/prism/snapshots/seattlerb/method_call_trailing_comma.txt
index edf79062cf..6a3573ddfc 100644
--- a/test/prism/snapshots/seattlerb/method_call_trailing_comma.txt
+++ b/test/prism/snapshots/seattlerb/method_call_trailing_comma.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
@@ -25,7 +27,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,4)-(1,5))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: (1,6)-(1,7) = ")"
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/mlhs_back_anonsplat.txt b/test/prism/snapshots/seattlerb/mlhs_back_anonsplat.txt
index 600f7f717b..0cfc1b3c60 100644
--- a/test/prism/snapshots/seattlerb/mlhs_back_anonsplat.txt
+++ b/test/prism/snapshots/seattlerb/mlhs_back_anonsplat.txt
@@ -1,21 +1,28 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: [:a, :b, :c]
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── lefts: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── @ LocalVariableTargetNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,6)-(1,7))
+ │ ├── flags: ∅
│ ├── name: :c
│ └── depth: 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/mlhs_back_splat.txt b/test/prism/snapshots/seattlerb/mlhs_back_splat.txt
index f5d3fe5ae9..1d9aab3830 100644
--- a/test/prism/snapshots/seattlerb/mlhs_back_splat.txt
+++ b/test/prism/snapshots/seattlerb/mlhs_back_splat.txt
@@ -1,24 +1,32 @@
@ ProgramNode (location: (1,0)-(1,15))
+├── flags: ∅
├── locals: [:a, :b, :c, :s]
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,15))
+ ├── flags: newline
├── lefts: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── @ LocalVariableTargetNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,6)-(1,7))
+ │ ├── flags: ∅
│ ├── name: :c
│ └── depth: 0
├── rest:
│ @ SplatNode (location: (1,9)-(1,11))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,9)-(1,10) = "*"
│ └── expression:
│ @ LocalVariableTargetNode (location: (1,10)-(1,11))
+ │ ├── flags: ∅
│ ├── name: :s
│ └── depth: 0
├── rights: (length: 0)
diff --git a/test/prism/snapshots/seattlerb/mlhs_front_anonsplat.txt b/test/prism/snapshots/seattlerb/mlhs_front_anonsplat.txt
index d4797031a5..d98d4dedd3 100644
--- a/test/prism/snapshots/seattlerb/mlhs_front_anonsplat.txt
+++ b/test/prism/snapshots/seattlerb/mlhs_front_anonsplat.txt
@@ -1,22 +1,29 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: [:x, :y, :z]
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── lefts: (length: 0)
├── rest:
│ @ SplatNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,0)-(1,1) = "*"
│ └── expression: ∅
├── rights: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── name: :x
│ │ └── depth: 0
│ ├── @ LocalVariableTargetNode (location: (1,6)-(1,7))
+ │ │ ├── flags: ∅
│ │ ├── name: :y
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,9)-(1,10))
+ │ ├── flags: ∅
│ ├── name: :z
│ └── depth: 0
├── lparen_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/mlhs_front_splat.txt b/test/prism/snapshots/seattlerb/mlhs_front_splat.txt
index 47a7b8da7c..85016f0ca8 100644
--- a/test/prism/snapshots/seattlerb/mlhs_front_splat.txt
+++ b/test/prism/snapshots/seattlerb/mlhs_front_splat.txt
@@ -1,25 +1,33 @@
@ ProgramNode (location: (1,0)-(1,15))
+├── flags: ∅
├── locals: [:s, :x, :y, :z]
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,15))
+ ├── flags: newline
├── lefts: (length: 0)
├── rest:
│ @ SplatNode (location: (1,0)-(1,2))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,0)-(1,1) = "*"
│ └── expression:
│ @ LocalVariableTargetNode (location: (1,1)-(1,2))
+ │ ├── flags: ∅
│ ├── name: :s
│ └── depth: 0
├── rights: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (1,4)-(1,5))
+ │ │ ├── flags: ∅
│ │ ├── name: :x
│ │ └── depth: 0
│ ├── @ LocalVariableTargetNode (location: (1,7)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── name: :y
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,10)-(1,11))
+ │ ├── flags: ∅
│ ├── name: :z
│ └── depth: 0
├── lparen_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/mlhs_keyword.txt b/test/prism/snapshots/seattlerb/mlhs_keyword.txt
index 6142640b2c..22a0391e4a 100644
--- a/test/prism/snapshots/seattlerb/mlhs_keyword.txt
+++ b/test/prism/snapshots/seattlerb/mlhs_keyword.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,1))
│ ├── flags: variable_call, ignore_visibility
@@ -25,6 +27,8 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ TrueNode (location: (1,5)-(1,9))
+ │ │ └── flags: static_literal
│ └── @ TrueNode (location: (1,11)-(1,15))
+ │ └── flags: static_literal
├── closing_loc: (1,15)-(1,16) = ")"
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/mlhs_mid_anonsplat.txt b/test/prism/snapshots/seattlerb/mlhs_mid_anonsplat.txt
index b6306e1674..7a0894db30 100644
--- a/test/prism/snapshots/seattlerb/mlhs_mid_anonsplat.txt
+++ b/test/prism/snapshots/seattlerb/mlhs_mid_anonsplat.txt
@@ -1,31 +1,41 @@
@ ProgramNode (location: (1,0)-(1,23))
+├── flags: ∅
├── locals: [:a, :b, :c, :x, :y, :z]
└── statements:
@ StatementsNode (location: (1,0)-(1,23))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,23))
+ ├── flags: newline
├── lefts: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── @ LocalVariableTargetNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,6)-(1,7))
+ │ ├── flags: ∅
│ ├── name: :c
│ └── depth: 0
├── rest:
│ @ SplatNode (location: (1,9)-(1,10))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,9)-(1,10) = "*"
│ └── expression: ∅
├── rights: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (1,12)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── name: :x
│ │ └── depth: 0
│ ├── @ LocalVariableTargetNode (location: (1,15)-(1,16))
+ │ │ ├── flags: ∅
│ │ ├── name: :y
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,18)-(1,19))
+ │ ├── flags: ∅
│ ├── name: :z
│ └── depth: 0
├── lparen_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/mlhs_mid_splat.txt b/test/prism/snapshots/seattlerb/mlhs_mid_splat.txt
index 1dae24d911..d7671b6fe6 100644
--- a/test/prism/snapshots/seattlerb/mlhs_mid_splat.txt
+++ b/test/prism/snapshots/seattlerb/mlhs_mid_splat.txt
@@ -1,34 +1,45 @@
@ ProgramNode (location: (1,0)-(1,24))
+├── flags: ∅
├── locals: [:a, :b, :c, :s, :x, :y, :z]
└── statements:
@ StatementsNode (location: (1,0)-(1,24))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,24))
+ ├── flags: newline
├── lefts: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── @ LocalVariableTargetNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,6)-(1,7))
+ │ ├── flags: ∅
│ ├── name: :c
│ └── depth: 0
├── rest:
│ @ SplatNode (location: (1,9)-(1,11))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,9)-(1,10) = "*"
│ └── expression:
│ @ LocalVariableTargetNode (location: (1,10)-(1,11))
+ │ ├── flags: ∅
│ ├── name: :s
│ └── depth: 0
├── rights: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (1,13)-(1,14))
+ │ │ ├── flags: ∅
│ │ ├── name: :x
│ │ └── depth: 0
│ ├── @ LocalVariableTargetNode (location: (1,16)-(1,17))
+ │ │ ├── flags: ∅
│ │ ├── name: :y
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,19)-(1,20))
+ │ ├── flags: ∅
│ ├── name: :z
│ └── depth: 0
├── lparen_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/mlhs_rescue.txt b/test/prism/snapshots/seattlerb/mlhs_rescue.txt
index bd983cd3f9..d888306a9a 100644
--- a/test/prism/snapshots/seattlerb/mlhs_rescue.txt
+++ b/test/prism/snapshots/seattlerb/mlhs_rescue.txt
@@ -1,14 +1,19 @@
@ ProgramNode (location: (1,0)-(1,18))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(1,18))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,18))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,3)-(1,4))
+ │ ├── flags: ∅
│ ├── name: :b
│ └── depth: 0
├── rest: ∅
@@ -18,6 +23,7 @@
├── operator_loc: (1,5)-(1,6) = "="
└── value:
@ RescueModifierNode (location: (1,7)-(1,18))
+ ├── flags: ∅
├── expression:
│ @ CallNode (location: (1,7)-(1,8))
│ ├── flags: variable_call, ignore_visibility
@@ -32,5 +38,5 @@
├── keyword_loc: (1,9)-(1,15) = "rescue"
└── rescue_expression:
@ IntegerNode (location: (1,16)-(1,18))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
└── value: 42
diff --git a/test/prism/snapshots/seattlerb/module_comments.txt b/test/prism/snapshots/seattlerb/module_comments.txt
index 2785187a29..ecbef982dd 100644
--- a/test/prism/snapshots/seattlerb/module_comments.txt
+++ b/test/prism/snapshots/seattlerb/module_comments.txt
@@ -1,18 +1,24 @@
@ ProgramNode (location: (5,0)-(10,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (5,0)-(10,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ModuleNode (location: (5,0)-(10,3))
+ ├── flags: newline
├── locals: []
├── module_keyword_loc: (5,0)-(5,6) = "module"
├── constant_path:
│ @ ConstantReadNode (location: (5,7)-(5,8))
+ │ ├── flags: ∅
│ └── name: :X
├── body:
│ @ StatementsNode (location: (7,2)-(9,5))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ DefNode (location: (7,2)-(9,5))
+ │ ├── flags: newline
│ ├── name: :blah
│ ├── name_loc: (7,6)-(7,10) = "blah"
│ ├── receiver: ∅
diff --git a/test/prism/snapshots/seattlerb/multiline_hash_declaration.txt b/test/prism/snapshots/seattlerb/multiline_hash_declaration.txt
index ff28a1798b..7760698d13 100644
--- a/test/prism/snapshots/seattlerb/multiline_hash_declaration.txt
+++ b/test/prism/snapshots/seattlerb/multiline_hash_declaration.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(8,12))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(8,12))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CallNode (location: (1,0)-(3,2))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -18,15 +20,17 @@
│ │ ├── flags: symbol_keys
│ │ └── elements: (length: 1)
│ │ └── @ AssocNode (location: (1,2)-(3,1))
+ │ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,2)-(1,8))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,2)-(1,7) = "state"
│ │ │ ├── closing_loc: (1,7)-(1,8) = ":"
│ │ │ └── unescaped: "state"
│ │ ├── value:
│ │ │ @ HashNode (location: (2,1)-(3,1))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (2,1)-(2,2) = "{"
│ │ │ ├── elements: (length: 0)
│ │ │ └── closing_loc: (3,0)-(3,1) = "}"
@@ -34,7 +38,7 @@
│ ├── closing_loc: (3,1)-(3,2) = ")"
│ └── block: ∅
├── @ CallNode (location: (5,0)-(6,2))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -48,15 +52,17 @@
│ │ ├── flags: symbol_keys
│ │ └── elements: (length: 1)
│ │ └── @ AssocNode (location: (5,2)-(6,1))
+ │ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,2)-(5,8))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (5,2)-(5,7) = "state"
│ │ │ ├── closing_loc: (5,7)-(5,8) = ":"
│ │ │ └── unescaped: "state"
│ │ ├── value:
│ │ │ @ HashNode (location: (5,9)-(6,1))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (5,9)-(5,10) = "{"
│ │ │ ├── elements: (length: 0)
│ │ │ └── closing_loc: (6,0)-(6,1) = "}"
@@ -64,7 +70,7 @@
│ ├── closing_loc: (6,1)-(6,2) = ")"
│ └── block: ∅
└── @ CallNode (location: (8,0)-(8,12))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :f
@@ -78,15 +84,17 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (8,2)-(8,11))
+ │ ├── flags: ∅
│ ├── key:
│ │ @ SymbolNode (location: (8,2)-(8,8))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (8,2)-(8,7) = "state"
│ │ ├── closing_loc: (8,7)-(8,8) = ":"
│ │ └── unescaped: "state"
│ ├── value:
│ │ @ HashNode (location: (8,9)-(8,11))
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (8,9)-(8,10) = "{"
│ │ ├── elements: (length: 0)
│ │ └── closing_loc: (8,10)-(8,11) = "}"
diff --git a/test/prism/snapshots/seattlerb/non_interpolated_symbol_array_line_breaks.txt b/test/prism/snapshots/seattlerb/non_interpolated_symbol_array_line_breaks.txt
index cbf4ec4a08..eab6e8755f 100644
--- a/test/prism/snapshots/seattlerb/non_interpolated_symbol_array_line_breaks.txt
+++ b/test/prism/snapshots/seattlerb/non_interpolated_symbol_array_line_breaks.txt
@@ -1,19 +1,21 @@
@ ProgramNode (location: (1,0)-(5,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(4,1))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (2,0)-(2,1))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (2,0)-(2,1) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (3,0)-(3,1))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (3,0)-(3,1) = "b"
│ │ ├── closing_loc: ∅
@@ -21,5 +23,5 @@
│ ├── opening_loc: (1,0)-(1,3) = "%i("
│ └── closing_loc: (4,0)-(4,1) = ")"
└── @ IntegerNode (location: (5,0)-(5,1))
- ├── flags: decimal
+ ├── flags: newline, static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/seattlerb/non_interpolated_word_array_line_breaks.txt b/test/prism/snapshots/seattlerb/non_interpolated_word_array_line_breaks.txt
index e82f250098..00f5e9b616 100644
--- a/test/prism/snapshots/seattlerb/non_interpolated_word_array_line_breaks.txt
+++ b/test/prism/snapshots/seattlerb/non_interpolated_word_array_line_breaks.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(4,1))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ StringNode (location: (2,0)-(2,1))
│ │ │ ├── flags: ∅
@@ -21,5 +23,5 @@
│ ├── opening_loc: (1,0)-(1,3) = "%w("
│ └── closing_loc: (4,0)-(4,1) = ")"
└── @ IntegerNode (location: (5,0)-(5,1))
- ├── flags: decimal
+ ├── flags: newline, static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/seattlerb/op_asgn_command_call.txt b/test/prism/snapshots/seattlerb/op_asgn_command_call.txt
index 54aa06214f..810c203054 100644
--- a/test/prism/snapshots/seattlerb/op_asgn_command_call.txt
+++ b/test/prism/snapshots/seattlerb/op_asgn_command_call.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableOrWriteNode (location: (1,0)-(1,11))
+ ├── flags: newline
├── name_loc: (1,0)-(1,1) = "a"
├── operator_loc: (1,2)-(1,5) = "||="
├── value:
@@ -29,7 +32,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (1,10)-(1,11))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
diff --git a/test/prism/snapshots/seattlerb/op_asgn_dot_ident_command_call.txt b/test/prism/snapshots/seattlerb/op_asgn_dot_ident_command_call.txt
index 324c042b00..6f6fbb6dd9 100644
--- a/test/prism/snapshots/seattlerb/op_asgn_dot_ident_command_call.txt
+++ b/test/prism/snapshots/seattlerb/op_asgn_dot_ident_command_call.txt
@@ -1,12 +1,15 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallOrWriteNode (location: (1,0)-(1,11))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ ConstantReadNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ └── name: :A
├── call_operator_loc: (1,1)-(1,2) = "."
├── message_loc: (1,2)-(1,3) = "B"
@@ -26,7 +29,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,10)-(1,11))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/op_asgn_index_command_call.txt b/test/prism/snapshots/seattlerb/op_asgn_index_command_call.txt
index ddee4cde49..ccf77c4823 100644
--- a/test/prism/snapshots/seattlerb/op_asgn_index_command_call.txt
+++ b/test/prism/snapshots/seattlerb/op_asgn_index_command_call.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,16))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,16))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IndexOrWriteNode (location: (1,0)-(1,16))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
@@ -23,7 +25,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: ∅
@@ -44,10 +46,10 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ IntegerNode (location: (1,12)-(1,13))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ IntegerNode (location: (1,15)-(1,16))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/op_asgn_primary_colon_const_command_call.txt b/test/prism/snapshots/seattlerb/op_asgn_primary_colon_const_command_call.txt
index 523ccde455..a86a9269e1 100644
--- a/test/prism/snapshots/seattlerb/op_asgn_primary_colon_const_command_call.txt
+++ b/test/prism/snapshots/seattlerb/op_asgn_primary_colon_const_command_call.txt
@@ -1,13 +1,18 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ConstantPathOperatorWriteNode (location: (1,0)-(1,11))
+ ├── flags: newline
├── target:
│ @ ConstantPathNode (location: (1,0)-(1,4))
+ │ ├── flags: ∅
│ ├── parent:
│ │ @ ConstantReadNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ └── name: :A
│ ├── name: :B
│ ├── delimiter_loc: (1,1)-(1,3) = "::"
diff --git a/test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier1.txt b/test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier1.txt
index b9d00edc30..2aa30b7b6f 100644
--- a/test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier1.txt
+++ b/test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier1.txt
@@ -1,12 +1,15 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallOperatorWriteNode (location: (1,0)-(1,9))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ ConstantReadNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ └── name: :A
├── call_operator_loc: (1,1)-(1,3) = "::"
├── message_loc: (1,3)-(1,4) = "b"
@@ -16,5 +19,5 @@
├── binary_operator_loc: (1,5)-(1,7) = "+="
└── value:
@ IntegerNode (location: (1,8)-(1,9))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier_command_call.txt b/test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier_command_call.txt
index c12ea3983c..ad52f68c10 100644
--- a/test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier_command_call.txt
+++ b/test/prism/snapshots/seattlerb/op_asgn_primary_colon_identifier_command_call.txt
@@ -1,12 +1,15 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallOperatorWriteNode (location: (1,0)-(1,11))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ ConstantReadNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ └── name: :A
├── call_operator_loc: (1,1)-(1,3) = "::"
├── message_loc: (1,3)-(1,4) = "b"
diff --git a/test/prism/snapshots/seattlerb/op_asgn_val_dot_ident_command_call.txt b/test/prism/snapshots/seattlerb/op_asgn_val_dot_ident_command_call.txt
index b3b5709193..881bd60e63 100644
--- a/test/prism/snapshots/seattlerb/op_asgn_val_dot_ident_command_call.txt
+++ b/test/prism/snapshots/seattlerb/op_asgn_val_dot_ident_command_call.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallOrWriteNode (location: (1,0)-(1,11))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
@@ -34,7 +36,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,10)-(1,11))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_def_special_name.txt b/test/prism/snapshots/seattlerb/parse_def_special_name.txt
index dfbfe8a391..d8d849a3eb 100644
--- a/test/prism/snapshots/seattlerb/parse_def_special_name.txt
+++ b/test/prism/snapshots/seattlerb/parse_def_special_name.txt
@@ -1,9 +1,12 @@
@ 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: :next
├── name_loc: (1,4)-(1,8) = "next"
├── receiver: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_if_not_canonical.txt b/test/prism/snapshots/seattlerb/parse_if_not_canonical.txt
index 763bd24efd..bc07821090 100644
--- a/test/prism/snapshots/seattlerb/parse_if_not_canonical.txt
+++ b/test/prism/snapshots/seattlerb/parse_if_not_canonical.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(2,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(2,3))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ CallNode (location: (1,3)-(1,15))
@@ -39,21 +42,24 @@
├── then_keyword_loc: (1,16)-(1,20) = "then"
├── statements:
│ @ StatementsNode (location: (1,21)-(1,26))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ StringNode (location: (1,21)-(1,26))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,21)-(1,22) = "'"
│ ├── content_loc: (1,22)-(1,25) = "foo"
│ ├── closing_loc: (1,25)-(1,26) = "'"
│ └── unescaped: "foo"
├── consequent:
│ @ ElseNode (location: (1,27)-(2,3))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,27)-(1,31) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (1,32)-(1,37))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ StringNode (location: (1,32)-(1,37))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── opening_loc: (1,32)-(1,33) = "'"
│ │ ├── content_loc: (1,33)-(1,36) = "bar"
│ │ ├── closing_loc: (1,36)-(1,37) = "'"
diff --git a/test/prism/snapshots/seattlerb/parse_if_not_noncanonical.txt b/test/prism/snapshots/seattlerb/parse_if_not_noncanonical.txt
index 763bd24efd..bc07821090 100644
--- a/test/prism/snapshots/seattlerb/parse_if_not_noncanonical.txt
+++ b/test/prism/snapshots/seattlerb/parse_if_not_noncanonical.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(2,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(2,3))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ CallNode (location: (1,3)-(1,15))
@@ -39,21 +42,24 @@
├── then_keyword_loc: (1,16)-(1,20) = "then"
├── statements:
│ @ StatementsNode (location: (1,21)-(1,26))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ StringNode (location: (1,21)-(1,26))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,21)-(1,22) = "'"
│ ├── content_loc: (1,22)-(1,25) = "foo"
│ ├── closing_loc: (1,25)-(1,26) = "'"
│ └── unescaped: "foo"
├── consequent:
│ @ ElseNode (location: (1,27)-(2,3))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,27)-(1,31) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (1,32)-(1,37))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ StringNode (location: (1,32)-(1,37))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── opening_loc: (1,32)-(1,33) = "'"
│ │ ├── content_loc: (1,33)-(1,36) = "bar"
│ │ ├── closing_loc: (1,36)-(1,37) = "'"
diff --git a/test/prism/snapshots/seattlerb/parse_line_block.txt b/test/prism/snapshots/seattlerb/parse_line_block.txt
index 623c08d50e..fcb4aee490 100644
--- a/test/prism/snapshots/seattlerb/parse_line_block.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_block.txt
@@ -1,19 +1,22 @@
@ ProgramNode (location: (1,0)-(2,3))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(2,3))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LocalVariableWriteNode (location: (1,0)-(1,6))
+ │ ├── flags: newline
│ ├── name: :a
│ ├── depth: 0
│ ├── name_loc: (1,0)-(1,1) = "a"
│ ├── value:
│ │ @ IntegerNode (location: (1,4)-(1,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 42
│ └── operator_loc: (1,2)-(1,3) = "="
└── @ CallNode (location: (2,0)-(2,3))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :p
@@ -24,6 +27,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LocalVariableReadNode (location: (2,2)-(2,3))
+ │ ├── flags: ∅
│ ├── name: :a
│ └── depth: 0
├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_block_inline_comment.txt b/test/prism/snapshots/seattlerb/parse_line_block_inline_comment.txt
index 8495527cf4..2cf5d6de00 100644
--- a/test/prism/snapshots/seattlerb/parse_line_block_inline_comment.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_block_inline_comment.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,1))
+ ├── flags: ∅
└── body: (length: 3)
├── @ 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: (2,0)-(2,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: (3,0)-(3,1))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :c
diff --git a/test/prism/snapshots/seattlerb/parse_line_block_inline_comment_leading_newlines.txt b/test/prism/snapshots/seattlerb/parse_line_block_inline_comment_leading_newlines.txt
index f531a73a58..f376453c0d 100644
--- a/test/prism/snapshots/seattlerb/parse_line_block_inline_comment_leading_newlines.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_block_inline_comment_leading_newlines.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (4,0)-(7,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (4,0)-(7,1))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CallNode (location: (4,0)-(4,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: (5,0)-(5,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: (7,0)-(7,1))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :c
diff --git a/test/prism/snapshots/seattlerb/parse_line_block_inline_multiline_comment.txt b/test/prism/snapshots/seattlerb/parse_line_block_inline_multiline_comment.txt
index d4e962b355..21b6623652 100644
--- a/test/prism/snapshots/seattlerb/parse_line_block_inline_multiline_comment.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_block_inline_multiline_comment.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(4,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,1))
+ ├── flags: ∅
└── body: (length: 3)
├── @ 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: (2,0)-(2,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: (4,0)-(4,1))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :c
diff --git a/test/prism/snapshots/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt b/test/prism/snapshots/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt
index a08f5419f1..9ed31de459 100644
--- a/test/prism/snapshots/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_call_ivar_arg_no_parens_line_break.txt
@@ -1,10 +1,12 @@
@ 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: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
@@ -15,6 +17,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ InstanceVariableReadNode (location: (1,2)-(1,4))
+ │ ├── flags: ∅
│ └── name: :@b
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_call_ivar_line_break_paren.txt b/test/prism/snapshots/seattlerb/parse_line_call_ivar_line_break_paren.txt
index dd58d92d3a..32dbc0f02a 100644
--- a/test/prism/snapshots/seattlerb/parse_line_call_ivar_line_break_paren.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_call_ivar_line_break_paren.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,1))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(2,1))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
@@ -15,6 +17,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ InstanceVariableReadNode (location: (1,2)-(1,4))
+ │ ├── flags: ∅
│ └── name: :@b
├── closing_loc: (2,0)-(2,1) = ")"
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_call_no_args.txt b/test/prism/snapshots/seattlerb/parse_line_call_no_args.txt
index 8a0fcd63af..03b657d687 100644
--- a/test/prism/snapshots/seattlerb/parse_line_call_no_args.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_call_no_args.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: :f
@@ -14,11 +16,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(3,3))
+ ├── flags: ∅
├── locals: [:x, :y]
├── parameters:
│ @ BlockParametersNode (location: (1,5)-(1,11))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,6)-(1,10))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ RequiredParameterNode (location: (1,6)-(1,7))
│ │ │ │ ├── flags: ∅
@@ -37,11 +42,13 @@
│ └── closing_loc: (1,10)-(1,11) = "|"
├── body:
│ @ StatementsNode (location: (2,2)-(2,7))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (2,2)-(2,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (2,2)-(2,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :x
│ │ └── depth: 0
│ ├── call_operator_loc: ∅
@@ -53,6 +60,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (2,6)-(2,7))
+ │ │ ├── flags: ∅
│ │ ├── name: :y
│ │ └── depth: 0
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_defn_complex.txt b/test/prism/snapshots/seattlerb/parse_line_defn_complex.txt
index 84eef70b25..2a91fc6bba 100644
--- a/test/prism/snapshots/seattlerb/parse_line_defn_complex.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_defn_complex.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(5,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(5,3))
+ ├── flags: newline
├── name: :x
├── name_loc: (1,4)-(1,5) = "x"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (1,6)-(1,7))
+ │ ├── flags: ∅
│ ├── requireds: (length: 1)
│ │ └── @ RequiredParameterNode (location: (1,6)-(1,7))
│ │ ├── flags: ∅
@@ -21,9 +25,10 @@
│ └── block: ∅
├── body:
│ @ StatementsNode (location: (2,2)-(4,10))
+ │ ├── flags: ∅
│ └── body: (length: 3)
│ ├── @ CallNode (location: (2,2)-(2,6))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :p
@@ -34,28 +39,31 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ LocalVariableReadNode (location: (2,4)-(2,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :y
│ │ │ └── depth: 0
│ │ ├── closing_loc: (2,5)-(2,6) = ")"
│ │ └── block: ∅
│ ├── @ LocalVariableOperatorWriteNode (location: (3,2)-(3,8))
+ │ │ ├── flags: newline
│ │ ├── name_loc: (3,2)-(3,3) = "y"
│ │ ├── binary_operator_loc: (3,4)-(3,6) = "*="
│ │ ├── value:
│ │ │ @ IntegerNode (location: (3,7)-(3,8))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── name: :y
│ │ ├── binary_operator: :*
│ │ └── depth: 0
│ └── @ ReturnNode (location: (4,2)-(4,10))
- │ ├── flags: redundant
+ │ ├── flags: newline, redundant
│ ├── keyword_loc: (4,2)-(4,8) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (4,9)-(4,10))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LocalVariableReadNode (location: (4,9)-(4,10))
+ │ ├── flags: ∅
│ ├── name: :y
│ └── depth: 0
├── locals: [:y]
diff --git a/test/prism/snapshots/seattlerb/parse_line_defn_no_parens.txt b/test/prism/snapshots/seattlerb/parse_line_defn_no_parens.txt
index 74240322ac..aafcbb74b6 100644
--- a/test/prism/snapshots/seattlerb/parse_line_defn_no_parens.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_defn_no_parens.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(6,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(6,3))
+ ├── flags: ∅
└── body: (length: 2)
├── @ DefNode (location: (1,0)-(3,3))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (1,4)-(1,5) = "f"
│ ├── receiver: ∅
@@ -17,6 +20,7 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (3,0)-(3,3) = "end"
└── @ DefNode (location: (5,0)-(6,3))
+ ├── flags: newline
├── name: :f
├── name_loc: (5,4)-(5,5) = "f"
├── receiver: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_defn_no_parens_args.txt b/test/prism/snapshots/seattlerb/parse_line_defn_no_parens_args.txt
index 8445743293..0670c2c046 100644
--- a/test/prism/snapshots/seattlerb/parse_line_defn_no_parens_args.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_defn_no_parens_args.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,7))
+ │ ├── flags: ∅
│ ├── requireds: (length: 1)
│ │ └── @ RequiredParameterNode (location: (1,6)-(1,7))
│ │ ├── flags: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_dot2.txt b/test/prism/snapshots/seattlerb/parse_line_dot2.txt
index 9ccf5bdc99..29f6e68a18 100644
--- a/test/prism/snapshots/seattlerb/parse_line_dot2.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_dot2.txt
@@ -1,21 +1,23 @@
@ ProgramNode (location: (1,0)-(5,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,1))
+ ├── flags: ∅
└── body: (length: 3)
├── @ RangeNode (location: (1,0)-(2,1))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── left:
│ │ @ IntegerNode (location: (1,0)-(1,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ ├── right:
│ │ @ IntegerNode (location: (2,0)-(2,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 4
│ └── operator_loc: (1,1)-(1,3) = ".."
├── @ RangeNode (location: (3,0)-(4,1))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (3,0)-(3,1))
│ │ ├── flags: variable_call, ignore_visibility
@@ -40,7 +42,7 @@
│ │ └── block: ∅
│ └── operator_loc: (3,1)-(3,3) = ".."
└── @ CallNode (location: (5,0)-(5,1))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :c
diff --git a/test/prism/snapshots/seattlerb/parse_line_dot2_open.txt b/test/prism/snapshots/seattlerb/parse_line_dot2_open.txt
index f85fdd6d4b..d368ac7654 100644
--- a/test/prism/snapshots/seattlerb/parse_line_dot2_open.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_dot2_open.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,3))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── left:
│ │ @ IntegerNode (location: (1,0)-(1,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ ├── right: ∅
│ └── operator_loc: (1,1)-(1,3) = ".."
├── @ RangeNode (location: (2,2)-(2,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (2,2)-(2,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -27,7 +29,7 @@
│ ├── right: ∅
│ └── operator_loc: (2,3)-(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/parse_line_dot3.txt b/test/prism/snapshots/seattlerb/parse_line_dot3.txt
index 6364c1f136..7515617cea 100644
--- a/test/prism/snapshots/seattlerb/parse_line_dot3.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_dot3.txt
@@ -1,21 +1,23 @@
@ ProgramNode (location: (1,0)-(5,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,1))
+ ├── flags: ∅
└── body: (length: 3)
├── @ RangeNode (location: (1,0)-(2,1))
- │ ├── flags: exclude_end
+ │ ├── flags: newline, static_literal, exclude_end
│ ├── left:
│ │ @ IntegerNode (location: (1,0)-(1,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ ├── right:
│ │ @ IntegerNode (location: (2,0)-(2,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 4
│ └── operator_loc: (1,1)-(1,4) = "..."
├── @ RangeNode (location: (3,0)-(4,1))
- │ ├── flags: exclude_end
+ │ ├── flags: newline, exclude_end
│ ├── left:
│ │ @ CallNode (location: (3,0)-(3,1))
│ │ ├── flags: variable_call, ignore_visibility
@@ -40,7 +42,7 @@
│ │ └── block: ∅
│ └── operator_loc: (3,1)-(3,4) = "..."
└── @ CallNode (location: (5,0)-(5,1))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :c
diff --git a/test/prism/snapshots/seattlerb/parse_line_dot3_open.txt b/test/prism/snapshots/seattlerb/parse_line_dot3_open.txt
index 35759d12e3..789b490a28 100644
--- a/test/prism/snapshots/seattlerb/parse_line_dot3_open.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_dot3_open.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: exclude_end
+ │ ├── flags: newline, static_literal, exclude_end
│ ├── left:
│ │ @ IntegerNode (location: (1,0)-(1,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ ├── right: ∅
│ └── operator_loc: (1,1)-(1,4) = "..."
├── @ RangeNode (location: (2,2)-(2,6))
- │ ├── flags: exclude_end
+ │ ├── flags: newline, exclude_end
│ ├── left:
│ │ @ CallNode (location: (2,2)-(2,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -27,7 +29,7 @@
│ ├── right: ∅
│ └── operator_loc: (2,3)-(2,6) = "..."
└── @ 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/parse_line_dstr_escaped_newline.txt b/test/prism/snapshots/seattlerb/parse_line_dstr_escaped_newline.txt
index aada5a9477..e801ad402a 100644
--- a/test/prism/snapshots/seattlerb/parse_line_dstr_escaped_newline.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_dstr_escaped_newline.txt
@@ -1,21 +1,25 @@
@ ProgramNode (location: (1,0)-(3,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,4))
+ ├── flags: ∅
└── body: (length: 2)
├── @ InterpolatedStringNode (location: (1,0)-(2,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,1) = "\""
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (1,1)-(1,4))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (1,1)-(1,4) = "a\\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ └── @ EmbeddedStatementsNode (location: (1,4)-(2,1))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,4)-(1,6) = "\#{"
│ │ ├── statements: ∅
│ │ └── closing_loc: (2,0)-(2,1) = "}"
│ └── closing_loc: (2,1)-(2,2) = "\""
└── @ TrueNode (location: (3,0)-(3,4))
+ └── flags: newline, static_literal
diff --git a/test/prism/snapshots/seattlerb/parse_line_dstr_soft_newline.txt b/test/prism/snapshots/seattlerb/parse_line_dstr_soft_newline.txt
index 7ef56acb76..c94a12db81 100644
--- a/test/prism/snapshots/seattlerb/parse_line_dstr_soft_newline.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_dstr_soft_newline.txt
@@ -1,21 +1,25 @@
@ ProgramNode (location: (1,0)-(4,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,4))
+ ├── flags: ∅
└── body: (length: 2)
├── @ InterpolatedStringNode (location: (1,0)-(3,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,1) = "\""
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (1,1)-(2,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (1,1)-(2,0) = "a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ └── @ EmbeddedStatementsNode (location: (2,0)-(3,1))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (2,0)-(2,2) = "\#{"
│ │ ├── statements: ∅
│ │ └── closing_loc: (3,0)-(3,1) = "}"
│ └── closing_loc: (3,1)-(3,2) = "\""
└── @ TrueNode (location: (4,0)-(4,4))
+ └── flags: newline, static_literal
diff --git a/test/prism/snapshots/seattlerb/parse_line_evstr_after_break.txt b/test/prism/snapshots/seattlerb/parse_line_evstr_after_break.txt
index 82f461e340..446534f7ca 100644
--- a/test/prism/snapshots/seattlerb/parse_line_evstr_after_break.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_evstr_after_break.txt
@@ -1,14 +1,16 @@
@ ProgramNode (location: (1,0)-(2,6))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,6))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(2,6))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: ∅
├── parts: (length: 2)
│ ├── @ StringNode (location: (1,0)-(1,3))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (1,0)-(1,1) = "\""
│ │ ├── content_loc: (1,1)-(1,2) = "a"
│ │ ├── closing_loc: (1,2)-(1,3) = "\""
@@ -18,9 +20,11 @@
│ ├── opening_loc: (2,0)-(2,1) = "\""
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedStatementsNode (location: (2,1)-(2,5))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (2,1)-(2,3) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (2,3)-(2,4))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (2,3)-(2,4))
│ │ │ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/parse_line_hash_lit.txt b/test/prism/snapshots/seattlerb/parse_line_hash_lit.txt
index 0f95a607aa..5a8221b04a 100644
--- a/test/prism/snapshots/seattlerb/parse_line_hash_lit.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_hash_lit.txt
@@ -1,22 +1,26 @@
@ ProgramNode (location: (1,0)-(3,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,1))
+ ├── flags: ∅
└── body: (length: 1)
└── @ HashNode (location: (1,0)-(3,1))
+ ├── flags: newline, static_literal
├── opening_loc: (1,0)-(1,1) = "{"
├── elements: (length: 1)
│ └── @ AssocNode (location: (2,0)-(2,8))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ SymbolNode (location: (2,0)-(2,3))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (2,0)-(2,1) = ":"
│ │ ├── value_loc: (2,1)-(2,3) = "s1"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "s1"
│ ├── value:
│ │ @ IntegerNode (location: (2,7)-(2,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (2,4)-(2,6) = "=>"
└── closing_loc: (3,0)-(3,1) = "}"
diff --git a/test/prism/snapshots/seattlerb/parse_line_heredoc.txt b/test/prism/snapshots/seattlerb/parse_line_heredoc.txt
index ba00f01504..e2c8e8a159 100644
--- a/test/prism/snapshots/seattlerb/parse_line_heredoc.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_heredoc.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,6)-(4,17))
+├── flags: ∅
├── locals: [:string]
└── statements:
@ StatementsNode (location: (1,6)-(4,17))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LocalVariableWriteNode (location: (1,6)-(1,31))
+ │ ├── flags: newline
│ ├── name: :string
│ ├── depth: 0
│ ├── name_loc: (1,6)-(1,12) = "string"
@@ -26,7 +29,7 @@
│ │ └── block: ∅
│ └── operator_loc: (1,13)-(1,14) = "="
└── @ CallNode (location: (4,6)-(4,17))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :puts
@@ -37,6 +40,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LocalVariableReadNode (location: (4,11)-(4,17))
+ │ ├── flags: ∅
│ ├── name: :string
│ └── depth: 0
├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_heredoc_evstr.txt b/test/prism/snapshots/seattlerb/parse_line_heredoc_evstr.txt
index b251b2b344..68b3300430 100644
--- a/test/prism/snapshots/seattlerb/parse_line_heredoc_evstr.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_heredoc_evstr.txt
@@ -1,22 +1,26 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,4))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,4) = "<<-A"
├── parts: (length: 3)
│ ├── @ 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)
│ │ │ └── @ CallNode (location: (3,2)-(3,3))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -30,7 +34,7 @@
│ │ │ └── block: ∅
│ │ └── 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: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt b/test/prism/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt
index ad0f0dfd99..d5b59ab1de 100644
--- a/test/prism/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_heredoc_hardnewline.txt
@@ -1,19 +1,23 @@
@ ProgramNode (location: (1,0)-(6,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(6,3))
+ ├── flags: ∅
└── body: (length: 2)
├── @ StringNode (location: (1,0)-(1,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,8) = "<<-EOFOO"
│ ├── content_loc: (2,0)-(3,0) = "\\n\\n\\n\\n\\n\\n\\n\\n\\n\n"
│ ├── closing_loc: (3,0)-(4,0) = "EOFOO\n"
│ └── unescaped: "\n\n\n\n\n\n\n\n\n\n"
└── @ ClassNode (location: (5,0)-(6,3))
+ ├── flags: newline
├── locals: []
├── class_keyword_loc: (5,0)-(5,5) = "class"
├── constant_path:
│ @ ConstantReadNode (location: (5,6)-(5,9))
+ │ ├── flags: ∅
│ └── name: :Foo
├── inheritance_operator_loc: ∅
├── superclass: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt b/test/prism/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt
index fdac30fab7..a188a8ff41 100644
--- a/test/prism/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_heredoc_regexp_chars.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,6)-(4,17))
+├── flags: ∅
├── locals: [:string]
└── statements:
@ StatementsNode (location: (1,6)-(4,17))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LocalVariableWriteNode (location: (1,6)-(1,22))
+ │ ├── flags: newline
│ ├── name: :string
│ ├── depth: 0
│ ├── name_loc: (1,6)-(1,12) = "string"
@@ -16,7 +19,7 @@
│ │ └── unescaped: " very long string\n"
│ └── operator_loc: (1,13)-(1,14) = "="
└── @ CallNode (location: (4,6)-(4,17))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :puts
@@ -27,6 +30,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LocalVariableReadNode (location: (4,11)-(4,17))
+ │ ├── flags: ∅
│ ├── name: :string
│ └── depth: 0
├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_iter_call_no_parens.txt b/test/prism/snapshots/seattlerb/parse_line_iter_call_no_parens.txt
index 8d9dbf24ab..d9ec88b3bb 100644
--- a/test/prism/snapshots/seattlerb/parse_line_iter_call_no_parens.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_iter_call_no_parens.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: :f
@@ -27,11 +29,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,4)-(3,3))
+ ├── flags: ∅
├── locals: [:x, :y]
├── parameters:
│ @ BlockParametersNode (location: (1,7)-(1,13))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,8)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ RequiredParameterNode (location: (1,8)-(1,9))
│ │ │ │ ├── flags: ∅
@@ -50,11 +55,13 @@
│ └── closing_loc: (1,12)-(1,13) = "|"
├── body:
│ @ StatementsNode (location: (2,2)-(2,7))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (2,2)-(2,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (2,2)-(2,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :x
│ │ └── depth: 0
│ ├── call_operator_loc: ∅
@@ -66,6 +73,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (2,6)-(2,7))
+ │ │ ├── flags: ∅
│ │ ├── name: :y
│ │ └── depth: 0
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_iter_call_parens.txt b/test/prism/snapshots/seattlerb/parse_line_iter_call_parens.txt
index 663d870137..27ea8d2e3e 100644
--- a/test/prism/snapshots/seattlerb/parse_line_iter_call_parens.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_iter_call_parens.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: :f
@@ -27,11 +29,14 @@
├── closing_loc: (1,3)-(1,4) = ")"
└── block:
@ BlockNode (location: (1,5)-(3,3))
+ ├── flags: ∅
├── locals: [:x, :y]
├── parameters:
│ @ BlockParametersNode (location: (1,8)-(1,14))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,9)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ RequiredParameterNode (location: (1,9)-(1,10))
│ │ │ │ ├── flags: ∅
@@ -50,11 +55,13 @@
│ └── closing_loc: (1,13)-(1,14) = "|"
├── body:
│ @ StatementsNode (location: (2,2)-(2,7))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (2,2)-(2,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (2,2)-(2,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :x
│ │ └── depth: 0
│ ├── call_operator_loc: ∅
@@ -66,6 +73,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (2,6)-(2,7))
+ │ │ ├── flags: ∅
│ │ ├── name: :y
│ │ └── depth: 0
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_multiline_str.txt b/test/prism/snapshots/seattlerb/parse_line_multiline_str.txt
index 8d4578eaec..7c2ea01d3c 100644
--- a/test/prism/snapshots/seattlerb/parse_line_multiline_str.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_multiline_str.txt
@@ -1,14 +1,16 @@
@ ProgramNode (location: (1,0)-(3,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ StringNode (location: (1,0)-(2,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,1) = "\""
│ ├── content_loc: (1,1)-(2,1) = "a\nb"
│ ├── closing_loc: (2,1)-(2,2) = "\""
│ └── unescaped: "a\nb"
└── @ IntegerNode (location: (3,0)-(3,1))
- ├── flags: decimal
+ ├── flags: newline, static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/seattlerb/parse_line_multiline_str_literal_n.txt b/test/prism/snapshots/seattlerb/parse_line_multiline_str_literal_n.txt
index 49d31f5b1b..b8c6e026cd 100644
--- a/test/prism/snapshots/seattlerb/parse_line_multiline_str_literal_n.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_multiline_str_literal_n.txt
@@ -1,14 +1,16 @@
@ ProgramNode (location: (1,0)-(2,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ StringNode (location: (1,0)-(1,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,1) = "\""
│ ├── content_loc: (1,1)-(1,5) = "a\\nb"
│ ├── closing_loc: (1,5)-(1,6) = "\""
│ └── unescaped: "a\nb"
└── @ IntegerNode (location: (2,0)-(2,1))
- ├── flags: decimal
+ ├── flags: newline, static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/seattlerb/parse_line_newlines.txt b/test/prism/snapshots/seattlerb/parse_line_newlines.txt
index 3e1ceef586..ba705338ba 100644
--- a/test/prism/snapshots/seattlerb/parse_line_newlines.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_newlines.txt
@@ -1,6 +1,9 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ TrueNode (location: (1,0)-(1,4))
+ └── flags: newline, static_literal
diff --git a/test/prism/snapshots/seattlerb/parse_line_op_asgn.txt b/test/prism/snapshots/seattlerb/parse_line_op_asgn.txt
index d113f2af9d..f2c62b60d1 100644
--- a/test/prism/snapshots/seattlerb/parse_line_op_asgn.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_op_asgn.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,6)-(3,9))
+├── flags: ∅
├── locals: [:foo]
└── statements:
@ StatementsNode (location: (1,6)-(3,9))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LocalVariableOperatorWriteNode (location: (1,6)-(2,11))
+ │ ├── flags: newline
│ ├── name_loc: (1,6)-(1,9) = "foo"
│ ├── binary_operator_loc: (1,10)-(1,12) = "+="
│ ├── value:
@@ -21,7 +24,7 @@
│ ├── binary_operator: :+
│ └── depth: 0
└── @ CallNode (location: (3,6)-(3,9))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :baz
diff --git a/test/prism/snapshots/seattlerb/parse_line_postexe.txt b/test/prism/snapshots/seattlerb/parse_line_postexe.txt
index 68b5f02fe0..afa30a72c0 100644
--- a/test/prism/snapshots/seattlerb/parse_line_postexe.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_postexe.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(3,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,1))
+ ├── flags: ∅
└── body: (length: 1)
└── @ PostExecutionNode (location: (1,0)-(3,1))
+ ├── flags: newline
├── statements:
│ @ StatementsNode (location: (2,0)-(2,3))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (2,0)-(2,3))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
diff --git a/test/prism/snapshots/seattlerb/parse_line_preexe.txt b/test/prism/snapshots/seattlerb/parse_line_preexe.txt
index 65ea22cf7d..4c670f30f6 100644
--- a/test/prism/snapshots/seattlerb/parse_line_preexe.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_preexe.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(3,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,1))
+ ├── flags: ∅
└── body: (length: 1)
└── @ PreExecutionNode (location: (1,0)-(3,1))
+ ├── flags: newline
├── statements:
│ @ StatementsNode (location: (2,0)-(2,3))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (2,0)-(2,3))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
diff --git a/test/prism/snapshots/seattlerb/parse_line_rescue.txt b/test/prism/snapshots/seattlerb/parse_line_rescue.txt
index cb20d5403b..ba988f98dc 100644
--- a/test/prism/snapshots/seattlerb/parse_line_rescue.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_rescue.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(7,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(7,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(7,3))
+ ├── flags: newline
├── begin_keyword_loc: (1,0)-(1,5) = "begin"
├── 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
@@ -20,15 +24,17 @@
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (3,0)-(6,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
@@ -39,15 +45,17 @@
│ │ └── block: ∅
│ └── consequent:
│ @ RescueNode (location: (5,0)-(6,3))
+ │ ├── flags: ∅
│ ├── keyword_loc: (5,0)-(5,6) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: ∅
│ ├── reference: ∅
│ ├── 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
diff --git a/test/prism/snapshots/seattlerb/parse_line_return.txt b/test/prism/snapshots/seattlerb/parse_line_return.txt
index 719a4da5da..70a7286746 100644
--- a/test/prism/snapshots/seattlerb/parse_line_return.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_return.txt
@@ -1,33 +1,40 @@
@ ProgramNode (location: (1,6)-(5,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,6)-(5,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,6)-(5,9))
+ ├── flags: newline
├── name: :blah
├── name_loc: (1,10)-(1,14) = "blah"
├── receiver: ∅
├── parameters: ∅
├── body:
│ @ StatementsNode (location: (2,8)-(4,11))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ IfNode (location: (2,8)-(4,11))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (2,8)-(2,10) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (2,11)-(2,15))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: (2,16)-(2,20) = "then"
│ ├── statements:
│ │ @ StatementsNode (location: (3,10)-(3,19))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ReturnNode (location: (3,10)-(3,19))
- │ │ ├── flags: redundant
+ │ │ ├── flags: newline, redundant
│ │ ├── keyword_loc: (3,10)-(3,16) = "return"
│ │ └── arguments:
│ │ @ ArgumentsNode (location: (3,17)-(3,19))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (3,17)-(3,19))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 42
│ ├── consequent: ∅
│ └── end_keyword_loc: (4,8)-(4,11) = "end"
diff --git a/test/prism/snapshots/seattlerb/parse_line_str_with_newline_escape.txt b/test/prism/snapshots/seattlerb/parse_line_str_with_newline_escape.txt
index 4a675d67c4..307e2af5f7 100644
--- a/test/prism/snapshots/seattlerb/parse_line_str_with_newline_escape.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_str_with_newline_escape.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
@@ -21,5 +23,6 @@
│ │ ├── closing_loc: (1,5)-(1,6) = "\""
│ │ └── unescaped: "\n"
│ └── @ TrueNode (location: (1,8)-(1,12))
+ │ └── flags: static_literal
├── closing_loc: (1,12)-(1,13) = ")"
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_to_ary.txt b/test/prism/snapshots/seattlerb/parse_line_to_ary.txt
index 0485b0d2e3..d1b21f313c 100644
--- a/test/prism/snapshots/seattlerb/parse_line_to_ary.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_to_ary.txt
@@ -1,14 +1,19 @@
@ ProgramNode (location: (1,0)-(3,1))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(3,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ MultiWriteNode (location: (1,0)-(2,5))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ LocalVariableTargetNode (location: (1,0)-(1,1))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :a
│ │ │ └── depth: 0
│ │ └── @ LocalVariableTargetNode (location: (2,0)-(2,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ ├── rest: ∅
@@ -28,7 +33,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: :d
diff --git a/test/prism/snapshots/seattlerb/parse_line_trailing_newlines.txt b/test/prism/snapshots/seattlerb/parse_line_trailing_newlines.txt
index 5cd7702847..459c13e9f5 100644
--- a/test/prism/snapshots/seattlerb/parse_line_trailing_newlines.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_trailing_newlines.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ 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: (2,0)-(2,1))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :b
diff --git a/test/prism/snapshots/seattlerb/parse_opt_call_args_assocs_comma.txt b/test/prism/snapshots/seattlerb/parse_opt_call_args_assocs_comma.txt
index dc11e2ca3d..d60a693d0e 100644
--- a/test/prism/snapshots/seattlerb/parse_opt_call_args_assocs_comma.txt
+++ b/test/prism/snapshots/seattlerb/parse_opt_call_args_assocs_comma.txt
@@ -1,13 +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: ∅
+ ├── flags: newline
├── receiver:
│ @ IntegerNode (location: (1,0)-(1,1))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── call_operator_loc: ∅
├── name: :[]
@@ -21,13 +23,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,7)-(1,8) = "]"
diff --git a/test/prism/snapshots/seattlerb/parse_opt_call_args_lit_comma.txt b/test/prism/snapshots/seattlerb/parse_opt_call_args_lit_comma.txt
index d1d3d9335f..753464b393 100644
--- a/test/prism/snapshots/seattlerb/parse_opt_call_args_lit_comma.txt
+++ b/test/prism/snapshots/seattlerb/parse_opt_call_args_lit_comma.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,2)-(1,3))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
├── closing_loc: (1,4)-(1,5) = "]"
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_019.txt b/test/prism/snapshots/seattlerb/parse_pattern_019.txt
index 9e2500fbde..1c289f46f5 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_019.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_019.txt
@@ -1,31 +1,37 @@
@ 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:
│ @ IntegerNode (location: (1,5)-(1,6))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 0
├── conditions: (length: 1)
│ └── @ InNode (location: (2,0)-(3,6))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ RangeNode (location: (2,3)-(2,8))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (2,3)-(2,5))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: -1
│ │ ├── right:
│ │ │ @ IntegerNode (location: (2,7)-(2,8))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (2,5)-(2,7) = ".."
│ ├── 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: ∅
├── consequent: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_044.txt b/test/prism/snapshots/seattlerb/parse_pattern_044.txt
index 951a5100b6..543b1de572 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_044.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_044.txt
@@ -1,9 +1,12 @@
@ 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:
│ @ CallNode (location: (1,5)-(1,8))
│ ├── flags: variable_call, ignore_visibility
@@ -17,10 +20,13 @@
│ └── block: ∅
├── conditions: (length: 1)
│ └── @ InNode (location: (2,0)-(3,6))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ ArrayPatternNode (location: (2,3)-(2,11))
+ │ │ ├── flags: ∅
│ │ ├── constant:
│ │ │ @ ConstantReadNode (location: (2,3)-(2,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :Object
│ │ ├── requireds: (length: 0)
│ │ ├── rest: ∅
@@ -29,8 +35,10 @@
│ │ └── closing_loc: (2,10)-(2,11) = "]"
│ ├── 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: ∅
├── consequent: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_051.txt b/test/prism/snapshots/seattlerb/parse_pattern_051.txt
index 6c366e559f..b6dd2bc6b2 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_051.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_051.txt
@@ -1,45 +1,53 @@
@ 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:
│ @ ArrayNode (location: (1,5)-(1,14))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── elements: (length: 3)
│ │ ├── @ IntegerNode (location: (1,6)-(1,7))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 0
│ │ ├── @ IntegerNode (location: (1,9)-(1,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ IntegerNode (location: (1,12)-(1,13))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── opening_loc: (1,5)-(1,6) = "["
│ └── closing_loc: (1,13)-(1,14) = "]"
├── conditions: (length: 1)
│ └── @ InNode (location: (2,0)-(3,6))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ ArrayPatternNode (location: (2,3)-(2,10))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ IntegerNode (location: (2,4)-(2,5))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 0
│ │ │ └── @ IntegerNode (location: (2,7)-(2,8))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest:
│ │ │ @ ImplicitRestNode (location: (2,8)-(2,9))
+ │ │ │ └── flags: ∅
│ │ ├── posts: (length: 0)
│ │ ├── opening_loc: (2,3)-(2,4) = "["
│ │ └── closing_loc: (2,9)-(2,10) = "]"
│ ├── 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: ∅
├── consequent: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_058.txt b/test/prism/snapshots/seattlerb/parse_pattern_058.txt
index 8a4f8f8a68..e297033baa 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_058.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_058.txt
@@ -1,52 +1,64 @@
@ ProgramNode (location: (1,0)-(4,3))
+├── flags: ∅
├── locals: [:a, :rest]
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseMatchNode (location: (1,0)-(4,3))
+ ├── flags: newline
├── predicate:
│ @ HashNode (location: (1,5)-(1,11))
+ │ ├── flags: static_literal
│ ├── opening_loc: (1,5)-(1,6) = "{"
│ ├── elements: (length: 1)
│ │ └── @ AssocNode (location: (1,6)-(1,10))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ 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,7) = "a"
│ │ │ ├── closing_loc: (1,7)-(1,8) = ":"
│ │ │ └── unescaped: "a"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 0
│ │ └── operator_loc: ∅
│ └── closing_loc: (1,10)-(1,11) = "}"
├── conditions: (length: 1)
│ └── @ InNode (location: (2,0)-(3,11))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ HashPatternNode (location: (2,3)-(2,15))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (2,4)-(2,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,4)-(2,6))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,4)-(2,5) = "a"
│ │ │ │ ├── closing_loc: (2,5)-(2,6) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (2,4)-(2,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ LocalVariableTargetNode (location: (2,4)-(2,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: ∅
│ │ ├── rest:
│ │ │ @ AssocSplatNode (location: (2,8)-(2,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── value:
│ │ │ │ @ LocalVariableTargetNode (location: (2,10)-(2,14))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :rest
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: (2,8)-(2,10) = "**"
@@ -54,14 +66,17 @@
│ │ └── closing_loc: (2,14)-(2,15) = "}"
│ ├── statements:
│ │ @ StatementsNode (location: (3,2)-(3,11))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ArrayNode (location: (3,2)-(3,11))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── elements: (length: 2)
│ │ │ ├── @ LocalVariableReadNode (location: (3,3)-(3,4))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableReadNode (location: (3,6)-(3,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :rest
│ │ │ └── depth: 0
│ │ ├── opening_loc: (3,2)-(3,3) = "["
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt b/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt
index 3507d0f2cf..73c211e623 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt
@@ -1,61 +1,74 @@
@ ProgramNode (location: (1,0)-(4,3))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseMatchNode (location: (1,0)-(4,3))
+ ├── flags: newline
├── predicate:
│ @ HashNode (location: (1,5)-(1,11))
+ │ ├── flags: static_literal
│ ├── opening_loc: (1,5)-(1,6) = "{"
│ ├── elements: (length: 1)
│ │ └── @ AssocNode (location: (1,6)-(1,10))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ 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,7) = "a"
│ │ │ ├── closing_loc: (1,7)-(1,8) = ":"
│ │ │ └── unescaped: "a"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 0
│ │ └── operator_loc: ∅
│ └── closing_loc: (1,10)-(1,11) = "}"
├── conditions: (length: 1)
│ └── @ InNode (location: (2,0)-(3,5))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ HashPatternNode (location: (2,3)-(2,11))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (2,4)-(2,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,4)-(2,6))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,4)-(2,5) = "a"
│ │ │ │ ├── closing_loc: (2,5)-(2,6) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (2,4)-(2,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ LocalVariableTargetNode (location: (2,4)-(2,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: ∅
│ │ ├── rest:
│ │ │ @ AssocSplatNode (location: (2,8)-(2,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── value: ∅
│ │ │ └── operator_loc: (2,8)-(2,10) = "**"
│ │ ├── opening_loc: (2,3)-(2,4) = "{"
│ │ └── closing_loc: (2,10)-(2,11) = "}"
│ ├── statements:
│ │ @ StatementsNode (location: (3,2)-(3,5))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ArrayNode (location: (3,2)-(3,5))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── elements: (length: 1)
│ │ │ └── @ LocalVariableReadNode (location: (3,3)-(3,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :a
│ │ │ └── depth: 0
│ │ ├── opening_loc: (3,2)-(3,3) = "["
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_069.txt b/test/prism/snapshots/seattlerb/parse_pattern_069.txt
index 09ac7653c6..b11d05f81b 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_069.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_069.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,3))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ HashPatternNode (location: (2,3)-(2,15))
+ │ │ ├── flags: ∅
│ │ ├── constant:
│ │ │ @ ConstantReadNode (location: (2,3)-(2,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :Object
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (2,10)-(2,14))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,10)-(2,12))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,10)-(2,11) = "b"
│ │ │ │ ├── closing_loc: (2,11)-(2,12) = ":"
│ │ │ │ └── unescaped: "b"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (2,13)-(2,14))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── operator_loc: ∅
│ │ ├── rest: ∅
@@ -37,9 +44,10 @@
│ │ └── closing_loc: (2,14)-(2,15) = "]"
│ ├── statements:
│ │ @ StatementsNode (location: (3,2)-(3,3))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (3,2)-(3,3))
- │ │ ├── flags: decimal
+ │ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── in_loc: (2,0)-(2,2) = "in"
│ └── then_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_076.txt b/test/prism/snapshots/seattlerb/parse_pattern_076.txt
index 60e71cd6fe..4bb810e7db 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_076.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_076.txt
@@ -1,56 +1,67 @@
@ 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:
│ @ HashNode (location: (1,5)-(1,11))
+ │ ├── flags: static_literal
│ ├── opening_loc: (1,5)-(1,6) = "{"
│ ├── elements: (length: 1)
│ │ └── @ AssocNode (location: (1,6)-(1,10))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ 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,7) = "a"
│ │ │ ├── closing_loc: (1,7)-(1,8) = ":"
│ │ │ └── unescaped: "a"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: ∅
│ └── closing_loc: (1,10)-(1,11) = "}"
├── conditions: (length: 1)
│ └── @ InNode (location: (2,0)-(3,6))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ HashPatternNode (location: (2,3)-(2,16))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (2,4)-(2,8))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,4)-(2,6))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,4)-(2,5) = "a"
│ │ │ │ ├── closing_loc: (2,5)-(2,6) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (2,7)-(2,8))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── operator_loc: ∅
│ │ ├── rest:
│ │ │ @ NoKeywordsParameterNode (location: (2,10)-(2,15))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (2,10)-(2,12) = "**"
│ │ │ └── keyword_loc: (2,12)-(2,15) = "nil"
│ │ ├── opening_loc: (2,3)-(2,4) = "{"
│ │ └── closing_loc: (2,15)-(2,16) = "}"
│ ├── 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: ∅
├── consequent: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_until_not_canonical.txt b/test/prism/snapshots/seattlerb/parse_until_not_canonical.txt
index 7d5ef19a05..e8bd89c050 100644
--- a/test/prism/snapshots/seattlerb/parse_until_not_canonical.txt
+++ b/test/prism/snapshots/seattlerb/parse_until_not_canonical.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ UntilNode (location: (1,0)-(3,3))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (1,0)-(1,5) = "until"
├── closing_loc: (3,0)-(3,3) = "end"
├── predicate:
@@ -40,9 +42,10 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (2,2)-(2,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (2,2)-(2,7))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (2,2)-(2,3) = "'"
├── content_loc: (2,3)-(2,6) = "foo"
├── closing_loc: (2,6)-(2,7) = "'"
diff --git a/test/prism/snapshots/seattlerb/parse_until_not_noncanonical.txt b/test/prism/snapshots/seattlerb/parse_until_not_noncanonical.txt
index 7d5ef19a05..e8bd89c050 100644
--- a/test/prism/snapshots/seattlerb/parse_until_not_noncanonical.txt
+++ b/test/prism/snapshots/seattlerb/parse_until_not_noncanonical.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ UntilNode (location: (1,0)-(3,3))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (1,0)-(1,5) = "until"
├── closing_loc: (3,0)-(3,3) = "end"
├── predicate:
@@ -40,9 +42,10 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (2,2)-(2,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (2,2)-(2,7))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (2,2)-(2,3) = "'"
├── content_loc: (2,3)-(2,6) = "foo"
├── closing_loc: (2,6)-(2,7) = "'"
diff --git a/test/prism/snapshots/seattlerb/parse_while_not_canonical.txt b/test/prism/snapshots/seattlerb/parse_while_not_canonical.txt
index 91eb88a70f..16d53d5cef 100644
--- a/test/prism/snapshots/seattlerb/parse_while_not_canonical.txt
+++ b/test/prism/snapshots/seattlerb/parse_while_not_canonical.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ WhileNode (location: (1,0)-(3,3))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (1,0)-(1,5) = "while"
├── closing_loc: (3,0)-(3,3) = "end"
├── predicate:
@@ -40,9 +42,10 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (2,2)-(2,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (2,2)-(2,7))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (2,2)-(2,3) = "'"
├── content_loc: (2,3)-(2,6) = "foo"
├── closing_loc: (2,6)-(2,7) = "'"
diff --git a/test/prism/snapshots/seattlerb/parse_while_not_noncanonical.txt b/test/prism/snapshots/seattlerb/parse_while_not_noncanonical.txt
index 91eb88a70f..16d53d5cef 100644
--- a/test/prism/snapshots/seattlerb/parse_while_not_noncanonical.txt
+++ b/test/prism/snapshots/seattlerb/parse_while_not_noncanonical.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ WhileNode (location: (1,0)-(3,3))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (1,0)-(1,5) = "while"
├── closing_loc: (3,0)-(3,3) = "end"
├── predicate:
@@ -40,9 +42,10 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (2,2)-(2,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (2,2)-(2,7))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (2,2)-(2,3) = "'"
├── content_loc: (2,3)-(2,6) = "foo"
├── closing_loc: (2,6)-(2,7) = "'"
diff --git a/test/prism/snapshots/seattlerb/pctW_lineno.txt b/test/prism/snapshots/seattlerb/pctW_lineno.txt
index 58efa9c59a..3afa00f067 100644
--- a/test/prism/snapshots/seattlerb/pctW_lineno.txt
+++ b/test/prism/snapshots/seattlerb/pctW_lineno.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(5,11))
- ├── flags: ∅
+ ├── flags: newline
├── elements: (length: 7)
│ ├── @ StringNode (location: (1,3)-(1,7))
│ │ ├── flags: ∅
diff --git a/test/prism/snapshots/seattlerb/pct_Q_backslash_nl.txt b/test/prism/snapshots/seattlerb/pct_Q_backslash_nl.txt
index 31cc0941ee..0789fb575c 100644
--- a/test/prism/snapshots/seattlerb/pct_Q_backslash_nl.txt
+++ b/test/prism/snapshots/seattlerb/pct_Q_backslash_nl.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,1))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(2,1))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,3) = "%q{"
├── content_loc: (1,3)-(2,0) = " \\\n"
├── closing_loc: (2,0)-(2,1) = "}"
diff --git a/test/prism/snapshots/seattlerb/pct_nl.txt b/test/prism/snapshots/seattlerb/pct_nl.txt
index 1009fcb51d..971e2a58ee 100644
--- a/test/prism/snapshots/seattlerb/pct_nl.txt
+++ b/test/prism/snapshots/seattlerb/pct_nl.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(3,0))
+├── flags: ∅
├── locals: [:x]
└── statements:
@ StatementsNode (location: (1,0)-(3,0))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(3,0))
+ ├── flags: newline
├── name: :x
├── depth: 0
├── name_loc: (1,0)-(1,1) = "x"
diff --git a/test/prism/snapshots/seattlerb/pct_w_heredoc_interp_nested.txt b/test/prism/snapshots/seattlerb/pct_w_heredoc_interp_nested.txt
index 1b8ec69b56..4d5f2c7f0f 100644
--- a/test/prism/snapshots/seattlerb/pct_w_heredoc_interp_nested.txt
+++ b/test/prism/snapshots/seattlerb/pct_w_heredoc_interp_nested.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(4,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(4,11))
- ├── flags: ∅
+ ├── flags: newline
├── elements: (length: 5)
│ ├── @ StringNode (location: (1,4)-(1,5))
│ │ ├── flags: ∅
@@ -13,16 +15,18 @@
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "1"
│ ├── @ InterpolatedStringNode (location: (1,6)-(1,12))
- │ │ ├── flags: mutable
+ │ │ ├── flags: static_literal, mutable
│ │ ├── opening_loc: ∅
│ │ ├── parts: (length: 1)
│ │ │ └── @ EmbeddedStatementsNode (location: (1,6)-(1,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,6)-(1,8) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (1,8)-(1,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ StringNode (location: (1,8)-(1,11))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: (1,8)-(1,11) = "<<A"
│ │ │ │ ├── content_loc: (2,0)-(3,0) = "2\n"
│ │ │ │ ├── closing_loc: (3,0)-(4,0) = "A\n"
diff --git a/test/prism/snapshots/seattlerb/pipe_semicolon.txt b/test/prism/snapshots/seattlerb/pipe_semicolon.txt
index 71fb4fbed5..14b4ad4d54 100644
--- a/test/prism/snapshots/seattlerb/pipe_semicolon.txt
+++ b/test/prism/snapshots/seattlerb/pipe_semicolon.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: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
@@ -24,9 +26,11 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,4)-(1,18))
+ ├── flags: ∅
├── locals: [:c]
├── parameters:
│ @ BlockParametersNode (location: (1,7)-(1,14))
+ │ ├── flags: ∅
│ ├── parameters: ∅
│ ├── locals: (length: 1)
│ │ └── @ BlockLocalVariableNode (location: (1,11)-(1,12))
diff --git a/test/prism/snapshots/seattlerb/pipe_space.txt b/test/prism/snapshots/seattlerb/pipe_space.txt
index 302d225337..00aba740dd 100644
--- a/test/prism/snapshots/seattlerb/pipe_space.txt
+++ b/test/prism/snapshots/seattlerb/pipe_space.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,1))
│ ├── flags: variable_call, ignore_visibility
@@ -24,9 +26,11 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,4)-(1,14))
+ ├── flags: ∅
├── locals: []
├── parameters:
│ @ BlockParametersNode (location: (1,7)-(1,10))
+ │ ├── flags: ∅
│ ├── parameters: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,7)-(1,8) = "|"
diff --git a/test/prism/snapshots/seattlerb/qWords_space.txt b/test/prism/snapshots/seattlerb/qWords_space.txt
index 95ae6d4075..6df5459c77 100644
--- a/test/prism/snapshots/seattlerb/qWords_space.txt
+++ b/test/prism/snapshots/seattlerb/qWords_space.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 0)
├── opening_loc: (1,0)-(1,3) = "%W("
└── closing_loc: (1,4)-(1,5) = ")"
diff --git a/test/prism/snapshots/seattlerb/qsymbols.txt b/test/prism/snapshots/seattlerb/qsymbols.txt
index 8ba68638c5..b350644933 100644
--- a/test/prism/snapshots/seattlerb/qsymbols.txt
+++ b/test/prism/snapshots/seattlerb/qsymbols.txt
@@ -1,25 +1,27 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,9))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 3)
│ ├── @ SymbolNode (location: (1,3)-(1,4))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,4) = "a"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a"
│ ├── @ SymbolNode (location: (1,5)-(1,6))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,5)-(1,6) = "b"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b"
│ └── @ SymbolNode (location: (1,7)-(1,8))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: ∅
│ ├── value_loc: (1,7)-(1,8) = "c"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/qsymbols_empty.txt b/test/prism/snapshots/seattlerb/qsymbols_empty.txt
index 54aa3f77d7..80af231eb4 100644
--- a/test/prism/snapshots/seattlerb/qsymbols_empty.txt
+++ b/test/prism/snapshots/seattlerb/qsymbols_empty.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,4))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 0)
├── opening_loc: (1,0)-(1,3) = "%I("
└── closing_loc: (1,3)-(1,4) = ")"
diff --git a/test/prism/snapshots/seattlerb/qsymbols_empty_space.txt b/test/prism/snapshots/seattlerb/qsymbols_empty_space.txt
index 624b922ce6..d55d1a5003 100644
--- a/test/prism/snapshots/seattlerb/qsymbols_empty_space.txt
+++ b/test/prism/snapshots/seattlerb/qsymbols_empty_space.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 0)
├── opening_loc: (1,0)-(1,3) = "%I("
└── closing_loc: (1,4)-(1,5) = ")"
diff --git a/test/prism/snapshots/seattlerb/qsymbols_interp.txt b/test/prism/snapshots/seattlerb/qsymbols_interp.txt
index 97bc6754ff..844decfc43 100644
--- a/test/prism/snapshots/seattlerb/qsymbols_interp.txt
+++ b/test/prism/snapshots/seattlerb/qsymbols_interp.txt
@@ -1,36 +1,41 @@
@ ProgramNode (location: (1,0)-(1,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,15))
- ├── flags: ∅
+ ├── flags: newline
├── elements: (length: 3)
│ ├── @ SymbolNode (location: (1,3)-(1,4))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,4) = "a"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a"
│ ├── @ InterpolatedSymbolNode (location: (1,5)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (1,5)-(1,6))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (1,5)-(1,6) = "b"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "b"
│ │ │ └── @ EmbeddedStatementsNode (location: (1,6)-(1,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,6)-(1,8) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (1,8)-(1,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (1,8)-(1,11))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── receiver:
│ │ │ │ │ @ IntegerNode (location: (1,8)-(1,9))
- │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :+
@@ -41,14 +46,14 @@
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── arguments: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (1,10)-(1,11))
- │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (1,11)-(1,12) = "}"
│ │ └── closing_loc: ∅
│ └── @ SymbolNode (location: (1,13)-(1,14))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: ∅
│ ├── value_loc: (1,13)-(1,14) = "c"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/quoted_symbol_hash_arg.txt b/test/prism/snapshots/seattlerb/quoted_symbol_hash_arg.txt
index bbc19d50ef..9484ed9d04 100644
--- a/test/prism/snapshots/seattlerb/quoted_symbol_hash_arg.txt
+++ b/test/prism/snapshots/seattlerb/quoted_symbol_hash_arg.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: :puts
@@ -18,15 +20,17 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,5)-(1,12))
+ │ ├── flags: ∅
│ ├── key:
│ │ @ SymbolNode (location: (1,5)-(1,9))
- │ │ ├── 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: (1,7)-(1,9) = "':"
│ │ └── unescaped: "a"
│ ├── value:
│ │ @ HashNode (location: (1,10)-(1,12))
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (1,10)-(1,11) = "{"
│ │ ├── elements: (length: 0)
│ │ └── closing_loc: (1,11)-(1,12) = "}"
diff --git a/test/prism/snapshots/seattlerb/quoted_symbol_keys.txt b/test/prism/snapshots/seattlerb/quoted_symbol_keys.txt
index 96e6af51a4..12a8126896 100644
--- a/test/prism/snapshots/seattlerb/quoted_symbol_keys.txt
+++ b/test/prism/snapshots/seattlerb/quoted_symbol_keys.txt
@@ -1,22 +1,26 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ HashNode (location: (1,0)-(1,11))
+ ├── flags: newline, static_literal
├── opening_loc: (1,0)-(1,1) = "{"
├── elements: (length: 1)
│ └── @ AssocNode (location: (1,2)-(1,9))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ SymbolNode (location: (1,2)-(1,6))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (1,2)-(1,3) = "'"
│ │ ├── value_loc: (1,3)-(1,4) = "a"
│ │ ├── closing_loc: (1,4)-(1,6) = "':"
│ │ └── unescaped: "a"
│ ├── value:
│ │ @ 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) = "b"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/qw_escape.txt b/test/prism/snapshots/seattlerb/qw_escape.txt
index d92c1da7a6..8d922f190a 100644
--- a/test/prism/snapshots/seattlerb/qw_escape.txt
+++ b/test/prism/snapshots/seattlerb/qw_escape.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,7))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,3) = "%q("
├── content_loc: (1,3)-(1,6) = "\u0001\\'"
├── closing_loc: (1,6)-(1,7) = ")"
diff --git a/test/prism/snapshots/seattlerb/qw_escape_term.txt b/test/prism/snapshots/seattlerb/qw_escape_term.txt
index e935b7eb68..8c369acd84 100644
--- a/test/prism/snapshots/seattlerb/qw_escape_term.txt
+++ b/test/prism/snapshots/seattlerb/qw_escape_term.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,26))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,26))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,26))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,3) = "%q|"
├── content_loc: (1,3)-(1,25) = "blah blah \\| blah blah"
├── closing_loc: (1,25)-(1,26) = "|"
diff --git a/test/prism/snapshots/seattlerb/qwords_empty.txt b/test/prism/snapshots/seattlerb/qwords_empty.txt
index f9915c97c9..53279b034b 100644
--- a/test/prism/snapshots/seattlerb/qwords_empty.txt
+++ b/test/prism/snapshots/seattlerb/qwords_empty.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,4))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 0)
├── opening_loc: (1,0)-(1,3) = "%w("
└── closing_loc: (1,3)-(1,4) = ")"
diff --git a/test/prism/snapshots/seattlerb/read_escape_unicode_curlies.txt b/test/prism/snapshots/seattlerb/read_escape_unicode_curlies.txt
index 3ea5604b69..bc0d9f92de 100644
--- a/test/prism/snapshots/seattlerb/read_escape_unicode_curlies.txt
+++ b/test/prism/snapshots/seattlerb/read_escape_unicode_curlies.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,9))
- ├── flags: forced_utf8_encoding
+ ├── flags: newline, forced_utf8_encoding
├── opening_loc: (1,0)-(1,1) = "?"
├── content_loc: (1,1)-(1,9) = "\\u{00a0}"
├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/read_escape_unicode_h4.txt b/test/prism/snapshots/seattlerb/read_escape_unicode_h4.txt
index 1eba1396fd..046faafb22 100644
--- a/test/prism/snapshots/seattlerb/read_escape_unicode_h4.txt
+++ b/test/prism/snapshots/seattlerb/read_escape_unicode_h4.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,7))
- ├── flags: forced_utf8_encoding
+ ├── flags: newline, forced_utf8_encoding
├── opening_loc: (1,0)-(1,1) = "?"
├── content_loc: (1,1)-(1,7) = "\\u00a0"
├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/regexp.txt b/test/prism/snapshots/seattlerb/regexp.txt
index 06cf99264e..f8b3f38047 100644
--- a/test/prism/snapshots/seattlerb/regexp.txt
+++ b/test/prism/snapshots/seattlerb/regexp.txt
@@ -1,34 +1,36 @@
@ ProgramNode (location: (1,0)-(9,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(9,13))
+ ├── flags: ∅
└── body: (length: 5)
├── @ RegularExpressionNode (location: (1,0)-(1,5))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (1,0)-(1,1) = "/"
│ ├── content_loc: (1,1)-(1,4) = "wtf"
│ ├── closing_loc: (1,4)-(1,5) = "/"
│ └── unescaped: "wtf"
├── @ RegularExpressionNode (location: (3,0)-(3,6))
- │ ├── flags: multi_line, forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, multi_line, forced_us_ascii_encoding
│ ├── opening_loc: (3,0)-(3,1) = "/"
│ ├── content_loc: (3,1)-(3,4) = "wtf"
│ ├── closing_loc: (3,4)-(3,6) = "/m"
│ └── unescaped: "wtf"
├── @ RegularExpressionNode (location: (5,0)-(5,6))
- │ ├── flags: ascii_8bit, forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, ascii_8bit, forced_us_ascii_encoding
│ ├── opening_loc: (5,0)-(5,1) = "/"
│ ├── content_loc: (5,1)-(5,4) = "wtf"
│ ├── closing_loc: (5,4)-(5,6) = "/n"
│ └── unescaped: "wtf"
├── @ RegularExpressionNode (location: (7,0)-(7,7))
- │ ├── flags: multi_line, ascii_8bit, forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, multi_line, ascii_8bit, forced_us_ascii_encoding
│ ├── opening_loc: (7,0)-(7,1) = "/"
│ ├── content_loc: (7,1)-(7,4) = "wtf"
│ ├── closing_loc: (7,4)-(7,7) = "/nm"
│ └── unescaped: "wtf"
└── @ RegularExpressionNode (location: (9,0)-(9,13))
- ├── flags: multi_line, ascii_8bit, forced_us_ascii_encoding
+ ├── flags: newline, static_literal, multi_line, ascii_8bit, forced_us_ascii_encoding
├── opening_loc: (9,0)-(9,1) = "/"
├── content_loc: (9,1)-(9,4) = "wtf"
├── closing_loc: (9,4)-(9,13) = "/nmnmnmnm"
diff --git a/test/prism/snapshots/seattlerb/regexp_esc_C_slash.txt b/test/prism/snapshots/seattlerb/regexp_esc_C_slash.txt
index 4dbedc44ca..97444c6e2b 100644
--- a/test/prism/snapshots/seattlerb/regexp_esc_C_slash.txt
+++ b/test/prism/snapshots/seattlerb/regexp_esc_C_slash.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ RegularExpressionNode (location: (1,0)-(1,7))
- ├── flags: forced_us_ascii_encoding
+ ├── flags: newline, static_literal, forced_us_ascii_encoding
├── opening_loc: (1,0)-(1,1) = "/"
├── content_loc: (1,1)-(1,6) = "\\cC\\d"
├── closing_loc: (1,6)-(1,7) = "/"
diff --git a/test/prism/snapshots/seattlerb/regexp_esc_u.txt b/test/prism/snapshots/seattlerb/regexp_esc_u.txt
index bca451eb3b..1e915bae99 100644
--- a/test/prism/snapshots/seattlerb/regexp_esc_u.txt
+++ b/test/prism/snapshots/seattlerb/regexp_esc_u.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,17))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,17))
+ ├── flags: ∅
└── body: (length: 1)
└── @ RegularExpressionNode (location: (1,0)-(1,17))
- ├── flags: forced_us_ascii_encoding
+ ├── flags: newline, static_literal, forced_us_ascii_encoding
├── opening_loc: (1,0)-(1,1) = "/"
├── content_loc: (1,1)-(1,16) = "[\\u0021-\\u0027]"
├── closing_loc: (1,16)-(1,17) = "/"
diff --git a/test/prism/snapshots/seattlerb/regexp_escape_extended.txt b/test/prism/snapshots/seattlerb/regexp_escape_extended.txt
index 6568d2bd92..732899a20d 100644
--- a/test/prism/snapshots/seattlerb/regexp_escape_extended.txt
+++ b/test/prism/snapshots/seattlerb/regexp_escape_extended.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: ∅
+ ├── flags: newline, static_literal
├── opening_loc: (1,0)-(1,1) = "/"
├── content_loc: (1,1)-(1,5) = "\\“"
├── closing_loc: (1,5)-(1,6) = "/"
diff --git a/test/prism/snapshots/seattlerb/regexp_unicode_curlies.txt b/test/prism/snapshots/seattlerb/regexp_unicode_curlies.txt
index 487161b4d0..e62ed42ca5 100644
--- a/test/prism/snapshots/seattlerb/regexp_unicode_curlies.txt
+++ b/test/prism/snapshots/seattlerb/regexp_unicode_curlies.txt
@@ -1,16 +1,18 @@
@ ProgramNode (location: (1,0)-(3,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,8))
+ ├── flags: ∅
└── body: (length: 2)
├── @ RegularExpressionNode (location: (1,0)-(1,15))
- │ ├── flags: forced_utf8_encoding
+ │ ├── flags: newline, static_literal, forced_utf8_encoding
│ ├── opening_loc: (1,0)-(1,1) = "/"
│ ├── content_loc: (1,1)-(1,14) = "\\u{c0de babe}"
│ ├── closing_loc: (1,14)-(1,15) = "/"
│ └── unescaped: "\\u{c0de babe}"
└── @ RegularExpressionNode (location: (3,0)-(3,8))
- ├── flags: forced_utf8_encoding
+ ├── flags: newline, static_literal, forced_utf8_encoding
├── opening_loc: (3,0)-(3,1) = "/"
├── content_loc: (3,1)-(3,7) = "\\u{df}"
├── closing_loc: (3,7)-(3,8) = "/"
diff --git a/test/prism/snapshots/seattlerb/required_kwarg_no_value.txt b/test/prism/snapshots/seattlerb/required_kwarg_no_value.txt
index 54595ac5cb..6ae3e6d0a8 100644
--- a/test/prism/snapshots/seattlerb/required_kwarg_no_value.txt
+++ b/test/prism/snapshots/seattlerb/required_kwarg_no_value.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: :x
├── name_loc: (1,4)-(1,5) = "x"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (1,6)-(1,12))
+ │ ├── flags: ∅
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
│ ├── rest: ∅
diff --git a/test/prism/snapshots/seattlerb/rescue_do_end_ensure_result.txt b/test/prism/snapshots/seattlerb/rescue_do_end_ensure_result.txt
index 21f8bb08a5..bc3c34446b 100644
--- a/test/prism/snapshots/seattlerb/rescue_do_end_ensure_result.txt
+++ b/test/prism/snapshots/seattlerb/rescue_do_end_ensure_result.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(5,8))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(5,3))
│ ├── flags: ignore_visibility
@@ -17,16 +19,19 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,5)-(5,3))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ BeginNode (location: (1,5)-(5,3))
+ │ │ ├── flags: ∅
│ │ ├── begin_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (2,2)-(2,8))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (2,2)-(2,8))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (2,2)-(2,3) = ":"
│ │ │ ├── value_loc: (2,3)-(2,8) = "begin"
│ │ │ ├── closing_loc: ∅
@@ -35,12 +40,14 @@
│ │ ├── else_clause: ∅
│ │ ├── ensure_clause:
│ │ │ @ EnsureNode (location: (3,0)-(5,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── ensure_keyword_loc: (3,0)-(3,6) = "ensure"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (4,2)-(4,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (4,2)-(4,9))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (4,2)-(4,3) = ":"
│ │ │ │ ├── value_loc: (4,3)-(4,9) = "ensure"
│ │ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/rescue_do_end_no_raise.txt b/test/prism/snapshots/seattlerb/rescue_do_end_no_raise.txt
index aa4e85c171..8264ba6dcb 100644
--- a/test/prism/snapshots/seattlerb/rescue_do_end_no_raise.txt
+++ b/test/prism/snapshots/seattlerb/rescue_do_end_no_raise.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(9,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(9,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(9,3))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :tap
@@ -14,31 +16,36 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,4)-(9,3))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body:
│ @ BeginNode (location: (1,4)-(9,3))
+ │ ├── flags: ∅
│ ├── begin_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (2,2)-(2,8))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (2,2)-(2,8))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (2,2)-(2,3) = ":"
│ │ ├── value_loc: (2,3)-(2,8) = "begin"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "begin"
│ ├── rescue_clause:
│ │ @ RescueNode (location: (3,0)-(4,9))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (3,0)-(3,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (4,2)-(4,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (4,2)-(4,9))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (4,2)-(4,3) = ":"
│ │ │ ├── value_loc: (4,3)-(4,9) = "rescue"
│ │ │ ├── closing_loc: ∅
@@ -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,7))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (6,2)-(6,7))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (6,2)-(6,3) = ":"
│ │ │ ├── value_loc: (6,3)-(6,7) = "else"
│ │ │ ├── closing_loc: ∅
@@ -59,12 +68,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,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (8,2)-(8,9))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (8,2)-(8,3) = ":"
│ │ │ ├── value_loc: (8,3)-(8,9) = "ensure"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/rescue_do_end_raised.txt b/test/prism/snapshots/seattlerb/rescue_do_end_raised.txt
index 06f67fae69..53b77c1ea5 100644
--- a/test/prism/snapshots/seattlerb/rescue_do_end_raised.txt
+++ b/test/prism/snapshots/seattlerb/rescue_do_end_raised.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(5,3))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :tap
@@ -14,16 +16,19 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,4)-(5,3))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body:
│ @ BeginNode (location: (1,4)-(5,3))
+ │ ├── flags: ∅
│ ├── begin_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (2,2)-(2,7))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (2,2)-(2,7))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :raise
@@ -36,12 +41,14 @@
│ ├── else_clause: ∅
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (3,0)-(5,3))
+ │ │ ├── flags: ∅
│ │ ├── ensure_keyword_loc: (3,0)-(3,6) = "ensure"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (4,2)-(4,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (4,2)-(4,9))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (4,2)-(4,3) = ":"
│ │ │ ├── value_loc: (4,3)-(4,9) = "ensure"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/rescue_do_end_rescued.txt b/test/prism/snapshots/seattlerb/rescue_do_end_rescued.txt
index b4576c3bb2..d08c4dfe3c 100644
--- a/test/prism/snapshots/seattlerb/rescue_do_end_rescued.txt
+++ b/test/prism/snapshots/seattlerb/rescue_do_end_rescued.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(9,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(9,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(9,3))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :tap
@@ -14,16 +16,19 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,4)-(9,3))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body:
│ @ BeginNode (location: (1,4)-(9,3))
+ │ ├── flags: ∅
│ ├── begin_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (2,2)-(2,7))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (2,2)-(2,7))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :raise
@@ -34,15 +39,17 @@
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (3,0)-(4,9))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (3,0)-(3,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (4,2)-(4,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (4,2)-(4,9))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (4,2)-(4,3) = ":"
│ │ │ ├── value_loc: (4,3)-(4,9) = "rescue"
│ │ │ ├── closing_loc: ∅
@@ -50,12 +57,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,7))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (6,2)-(6,7))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (6,2)-(6,3) = ":"
│ │ │ ├── value_loc: (6,3)-(6,7) = "else"
│ │ │ ├── closing_loc: ∅
@@ -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,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (8,2)-(8,9))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (8,2)-(8,3) = ":"
│ │ │ ├── value_loc: (8,3)-(8,9) = "ensure"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/rescue_in_block.txt b/test/prism/snapshots/seattlerb/rescue_in_block.txt
index daac2b6776..0ee5868878 100644
--- a/test/prism/snapshots/seattlerb/rescue_in_block.txt
+++ b/test/prism/snapshots/seattlerb/rescue_in_block.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(4,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(4,3))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :blah
@@ -14,23 +16,27 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,5)-(4,3))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body:
│ @ BeginNode (location: (1,5)-(4,3))
+ │ ├── flags: ∅
│ ├── begin_keyword_loc: ∅
│ ├── statements: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (2,0)-(3,7))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (2,0)-(2,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (3,2)-(3,7))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (3,2)-(3,7))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :stuff
diff --git a/test/prism/snapshots/seattlerb/rescue_parens.txt b/test/prism/snapshots/seattlerb/rescue_parens.txt
index d086095e7a..2232ebb7a5 100644
--- a/test/prism/snapshots/seattlerb/rescue_parens.txt
+++ b/test/prism/snapshots/seattlerb/rescue_parens.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
@@ -15,10 +17,13 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (1,2)-(1,14))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,3)-(1,13))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RescueModifierNode (location: (1,3)-(1,13))
+ │ │ ├── flags: newline
│ │ ├── expression:
│ │ │ @ CallNode (location: (1,3)-(1,4))
│ │ │ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/return_call_assocs.txt b/test/prism/snapshots/seattlerb/return_call_assocs.txt
index 8948f7879b..58c34b41d6 100644
--- a/test/prism/snapshots/seattlerb/return_call_assocs.txt
+++ b/test/prism/snapshots/seattlerb/return_call_assocs.txt
@@ -1,75 +1,80 @@
@ ProgramNode (location: (1,0)-(11,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(11,14))
+ ├── flags: ∅
└── body: (length: 6)
├── @ ReturnNode (location: (1,0)-(1,17))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (1,7)-(1,17))
│ ├── flags: contains_keywords
│ └── arguments: (length: 2)
│ ├── @ IntegerNode (location: (1,7)-(1,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ KeywordHashNode (location: (1,10)-(1,17))
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,10)-(1,17))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ 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) = "z"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "z"
│ ├── value:
│ │ @ IntegerNode (location: (1,16)-(1,17))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (1,13)-(1,15) = "=>"
├── @ ReturnNode (location: (3,0)-(3,26))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (3,0)-(3,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (3,7)-(3,26))
│ ├── flags: contains_keywords
│ └── arguments: (length: 2)
│ ├── @ IntegerNode (location: (3,7)-(3,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ KeywordHashNode (location: (3,10)-(3,26))
│ ├── flags: symbol_keys
│ └── elements: (length: 2)
│ ├── @ AssocNode (location: (3,10)-(3,17))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ SymbolNode (location: (3,10)-(3,12))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (3,10)-(3,11) = ":"
│ │ │ ├── value_loc: (3,11)-(3,12) = "z"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "z"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (3,16)-(3,17))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (3,13)-(3,15) = "=>"
│ └── @ AssocNode (location: (3,19)-(3,26))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ SymbolNode (location: (3,19)-(3,21))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (3,19)-(3,20) = ":"
│ │ ├── value_loc: (3,20)-(3,21) = "w"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "w"
│ ├── value:
│ │ @ IntegerNode (location: (3,25)-(3,26))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── operator_loc: (3,22)-(3,24) = "=>"
├── @ ReturnNode (location: (5,0)-(5,14))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (5,0)-(5,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (5,7)-(5,14))
@@ -90,22 +95,23 @@
│ │ ├── flags: symbol_keys
│ │ └── elements: (length: 1)
│ │ └── @ AssocNode (location: (5,9)-(5,14))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ 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) = "z"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "z"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (5,13)-(5,14))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (5,11)-(5,13) = "=>"
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ ReturnNode (location: (7,0)-(7,12))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (7,0)-(7,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (7,7)-(7,12))
@@ -126,22 +132,23 @@
│ │ ├── flags: symbol_keys
│ │ └── elements: (length: 1)
│ │ └── @ AssocNode (location: (7,9)-(7,12))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ SymbolNode (location: (7,9)-(7,11))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (7,9)-(7,10) = "z"
│ │ │ ├── closing_loc: (7,10)-(7,11) = ":"
│ │ │ └── unescaped: "z"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (7,11)-(7,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ ReturnNode (location: (9,0)-(9,13))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (9,0)-(9,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (9,7)-(9,13))
@@ -162,22 +169,23 @@
│ │ ├── flags: symbol_keys
│ │ └── elements: (length: 1)
│ │ └── @ AssocNode (location: (9,9)-(9,12))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ SymbolNode (location: (9,9)-(9,11))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (9,9)-(9,10) = "z"
│ │ │ ├── closing_loc: (9,10)-(9,11) = ":"
│ │ │ └── unescaped: "z"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (9,11)-(9,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: ∅
│ ├── closing_loc: (9,12)-(9,13) = ")"
│ └── block: ∅
└── @ ReturnNode (location: (11,0)-(11,14))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (11,0)-(11,6) = "return"
└── arguments:
@ ArgumentsNode (location: (11,7)-(11,14))
@@ -198,6 +206,7 @@
│ ├── flags: ∅
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (11,9)-(11,13))
+ │ ├── flags: ∅
│ ├── key:
│ │ @ CallNode (location: (11,9)-(11,10))
│ │ ├── flags: variable_call, ignore_visibility
@@ -211,7 +220,7 @@
│ │ └── block: ∅
│ ├── value:
│ │ @ IntegerNode (location: (11,12)-(11,13))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (11,10)-(11,12) = "=>"
├── closing_loc: (11,13)-(11,14) = ")"
diff --git a/test/prism/snapshots/seattlerb/rhs_asgn.txt b/test/prism/snapshots/seattlerb/rhs_asgn.txt
index 9ee187218b..81ebb5e881 100644
--- a/test/prism/snapshots/seattlerb/rhs_asgn.txt
+++ b/test/prism/snapshots/seattlerb/rhs_asgn.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(1,7))
+├── flags: ∅
├── locals: [:n]
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MatchRequiredNode (location: (1,0)-(1,7))
+ ├── flags: newline
├── value:
│ @ IntegerNode (location: (1,0)-(1,2))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 42
├── pattern:
│ @ LocalVariableTargetNode (location: (1,6)-(1,7))
+ │ ├── flags: ∅
│ ├── name: :n
│ └── depth: 0
└── operator_loc: (1,3)-(1,5) = "=>"
diff --git a/test/prism/snapshots/seattlerb/ruby21_numbers.txt b/test/prism/snapshots/seattlerb/ruby21_numbers.txt
index e7eec943f8..9b4fab8592 100644
--- a/test/prism/snapshots/seattlerb/ruby21_numbers.txt
+++ b/test/prism/snapshots/seattlerb/ruby21_numbers.txt
@@ -1,24 +1,28 @@
@ ProgramNode (location: (1,0)-(1,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,13))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 3)
│ ├── @ ImaginaryNode (location: (1,1)-(1,3))
+ │ │ ├── flags: static_literal
│ │ └── numeric:
│ │ @ IntegerNode (location: (1,1)-(1,2))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── @ RationalNode (location: (1,5)-(1,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ ├── numerator: 2
│ │ └── denominator: 1
│ └── @ ImaginaryNode (location: (1,9)-(1,12))
+ │ ├── flags: static_literal
│ └── numeric:
│ @ RationalNode (location: (1,9)-(1,11))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ ├── numerator: 3
│ └── denominator: 1
├── opening_loc: (1,0)-(1,1) = "["
diff --git a/test/prism/snapshots/seattlerb/safe_attrasgn.txt b/test/prism/snapshots/seattlerb/safe_attrasgn.txt
index 3cec95ae7c..cb849e3f05 100644
--- a/test/prism/snapshots/seattlerb/safe_attrasgn.txt
+++ b/test/prism/snapshots/seattlerb/safe_attrasgn.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: safe_navigation, attribute_write
+ ├── flags: newline, safe_navigation, 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,7)-(1,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/safe_attrasgn_constant.txt b/test/prism/snapshots/seattlerb/safe_attrasgn_constant.txt
index baea063186..dc37648a08 100644
--- a/test/prism/snapshots/seattlerb/safe_attrasgn_constant.txt
+++ b/test/prism/snapshots/seattlerb/safe_attrasgn_constant.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: safe_navigation, attribute_write
+ ├── flags: newline, safe_navigation, 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,7)-(1,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/safe_call.txt b/test/prism/snapshots/seattlerb/safe_call.txt
index 7b402d9ef2..7faa6ac04e 100644
--- a/test/prism/snapshots/seattlerb/safe_call.txt
+++ b/test/prism/snapshots/seattlerb/safe_call.txt
@@ -1,10 +1,12 @@
@ 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: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/safe_call_after_newline.txt b/test/prism/snapshots/seattlerb/safe_call_after_newline.txt
index 0a69cbc9e5..f55fcdd21b 100644
--- a/test/prism/snapshots/seattlerb/safe_call_after_newline.txt
+++ b/test/prism/snapshots/seattlerb/safe_call_after_newline.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: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/safe_call_dot_parens.txt b/test/prism/snapshots/seattlerb/safe_call_dot_parens.txt
index 1d6ba9e49e..b4d8616f38 100644
--- a/test/prism/snapshots/seattlerb/safe_call_dot_parens.txt
+++ b/test/prism/snapshots/seattlerb/safe_call_dot_parens.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: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/safe_call_newline.txt b/test/prism/snapshots/seattlerb/safe_call_newline.txt
index 7b402d9ef2..7faa6ac04e 100644
--- a/test/prism/snapshots/seattlerb/safe_call_newline.txt
+++ b/test/prism/snapshots/seattlerb/safe_call_newline.txt
@@ -1,10 +1,12 @@
@ 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: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/safe_call_operator.txt b/test/prism/snapshots/seattlerb/safe_call_operator.txt
index d1f9b1ea9e..918cbe1828 100644
--- a/test/prism/snapshots/seattlerb/safe_call_operator.txt
+++ b/test/prism/snapshots/seattlerb/safe_call_operator.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: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
@@ -25,7 +27,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,5)-(1,6))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/safe_call_rhs_newline.txt b/test/prism/snapshots/seattlerb/safe_call_rhs_newline.txt
index 34790ebb33..50d03b7044 100644
--- a/test/prism/snapshots/seattlerb/safe_call_rhs_newline.txt
+++ b/test/prism/snapshots/seattlerb/safe_call_rhs_newline.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: [:c]
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,8))
+ ├── flags: newline
├── name: :c
├── depth: 0
├── name_loc: (1,0)-(1,1) = "c"
diff --git a/test/prism/snapshots/seattlerb/safe_calls.txt b/test/prism/snapshots/seattlerb/safe_calls.txt
index 54e591d9c0..5d853af648 100644
--- a/test/prism/snapshots/seattlerb/safe_calls.txt
+++ b/test/prism/snapshots/seattlerb/safe_calls.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: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,4))
│ ├── flags: safe_navigation
@@ -35,7 +37,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,8)-(1,9))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: (1,9)-(1,10) = ")"
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/safe_op_asgn.txt b/test/prism/snapshots/seattlerb/safe_op_asgn.txt
index ebcedd6b5e..31ad5a813d 100644
--- a/test/prism/snapshots/seattlerb/safe_op_asgn.txt
+++ b/test/prism/snapshots/seattlerb/safe_op_asgn.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallOperatorWriteNode (location: (1,0)-(1,11))
- ├── flags: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
@@ -35,7 +37,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,10)-(1,11))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/safe_op_asgn2.txt b/test/prism/snapshots/seattlerb/safe_op_asgn2.txt
index bdb0e06156..81d42aac63 100644
--- a/test/prism/snapshots/seattlerb/safe_op_asgn2.txt
+++ b/test/prism/snapshots/seattlerb/safe_op_asgn2.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,1))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallOrWriteNode (location: (1,0)-(2,1))
- ├── flags: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/slashy_newlines_within_string.txt b/test/prism/snapshots/seattlerb/slashy_newlines_within_string.txt
index f9be33ffdd..061e67ca6a 100644
--- a/test/prism/snapshots/seattlerb/slashy_newlines_within_string.txt
+++ b/test/prism/snapshots/seattlerb/slashy_newlines_within_string.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(6,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(6,5))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(4,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :puts
@@ -23,7 +25,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (6,0)-(6,5))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (6,0)-(6,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/stabby_arg_no_paren.txt b/test/prism/snapshots/seattlerb/stabby_arg_no_paren.txt
index e665565d38..e00e82e9c6 100644
--- a/test/prism/snapshots/seattlerb/stabby_arg_no_paren.txt
+++ b/test/prism/snapshots/seattlerb/stabby_arg_no_paren.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LambdaNode (location: (1,0)-(1,5))
+ ├── flags: newline
├── locals: [:a]
├── operator_loc: (1,0)-(1,2) = "->"
├── opening_loc: (1,3)-(1,4) = "{"
├── closing_loc: (1,4)-(1,5) = "}"
├── parameters:
│ @ BlockParametersNode (location: (1,2)-(1,3))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,2)-(1,3))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,2)-(1,3))
│ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt b/test/prism/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt
index 0b0000ef33..b0b9a93f61 100644
--- a/test/prism/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt
+++ b/test/prism/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(1,23))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,23))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LambdaNode (location: (1,0)-(1,23))
+ ├── flags: newline
├── locals: [:b, :c, :d, :e, :f]
├── operator_loc: (1,0)-(1,2) = "->"
├── opening_loc: (1,21)-(1,22) = "{"
├── closing_loc: (1,22)-(1,23) = "}"
├── parameters:
│ @ BlockParametersNode (location: (1,2)-(1,21))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,3)-(1,20))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,3)-(1,4))
│ │ │ ├── flags: ∅
@@ -24,7 +29,7 @@
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,8)-(1,9))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,11)-(1,13))
diff --git a/test/prism/snapshots/seattlerb/stabby_block_iter_call.txt b/test/prism/snapshots/seattlerb/stabby_block_iter_call.txt
index e51c7d97ed..9769563607 100644
--- a/test/prism/snapshots/seattlerb/stabby_block_iter_call.txt
+++ b/test/prism/snapshots/seattlerb/stabby_block_iter_call.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(4,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(4,3))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :x
@@ -15,21 +17,24 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LambdaNode (location: (1,2)-(4,3))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── operator_loc: (1,2)-(1,4) = "->"
│ ├── opening_loc: (1,8)-(1,10) = "do"
│ ├── closing_loc: (4,0)-(4,3) = "end"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,5)-(1,7))
+ │ │ ├── flags: ∅
│ │ ├── parameters: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (1,5)-(1,6) = "("
│ │ └── closing_loc: (1,6)-(1,7) = ")"
│ └── body:
│ @ StatementsNode (location: (2,0)-(3,3))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (2,0)-(3,3))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (2,0)-(2,1))
│ │ ├── flags: variable_call, ignore_visibility
@@ -49,6 +54,7 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (2,4)-(3,3))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
diff --git a/test/prism/snapshots/seattlerb/stabby_block_iter_call_no_target_with_arg.txt b/test/prism/snapshots/seattlerb/stabby_block_iter_call_no_target_with_arg.txt
index d7a268a5d5..5d60be6e86 100644
--- a/test/prism/snapshots/seattlerb/stabby_block_iter_call_no_target_with_arg.txt
+++ b/test/prism/snapshots/seattlerb/stabby_block_iter_call_no_target_with_arg.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(4,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(4,3))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :x
@@ -15,21 +17,24 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LambdaNode (location: (1,2)-(4,3))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── operator_loc: (1,2)-(1,4) = "->"
│ ├── opening_loc: (1,8)-(1,10) = "do"
│ ├── closing_loc: (4,0)-(4,3) = "end"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,5)-(1,7))
+ │ │ ├── flags: ∅
│ │ ├── parameters: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (1,5)-(1,6) = "("
│ │ └── closing_loc: (1,6)-(1,7) = ")"
│ └── body:
│ @ StatementsNode (location: (2,0)-(3,3))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (2,0)-(3,3))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -40,11 +45,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (2,2)-(2,3))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: (2,3)-(2,4) = ")"
│ └── block:
│ @ BlockNode (location: (2,5)-(3,3))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
diff --git a/test/prism/snapshots/seattlerb/stabby_block_kw.txt b/test/prism/snapshots/seattlerb/stabby_block_kw.txt
index 7addbb8b28..456eb69100 100644
--- a/test/prism/snapshots/seattlerb/stabby_block_kw.txt
+++ b/test/prism/snapshots/seattlerb/stabby_block_kw.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(1,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LambdaNode (location: (1,0)-(1,13))
+ ├── flags: newline
├── locals: [:k]
├── operator_loc: (1,0)-(1,2) = "->"
├── opening_loc: (1,10)-(1,11) = "{"
├── closing_loc: (1,12)-(1,13) = "}"
├── parameters:
│ @ BlockParametersNode (location: (1,3)-(1,9))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,4)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -23,7 +28,7 @@
│ │ │ ├── name_loc: (1,4)-(1,6) = "k:"
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,6)-(1,8))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/prism/snapshots/seattlerb/stabby_block_kw__required.txt b/test/prism/snapshots/seattlerb/stabby_block_kw__required.txt
index b5040d91db..823a5adca4 100644
--- a/test/prism/snapshots/seattlerb/stabby_block_kw__required.txt
+++ b/test/prism/snapshots/seattlerb/stabby_block_kw__required.txt
@@ -1,17 +1,22 @@
@ 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: [:k]
├── operator_loc: (1,0)-(1,2) = "->"
├── opening_loc: (1,8)-(1,9) = "{"
├── closing_loc: (1,10)-(1,11) = "}"
├── parameters:
│ @ BlockParametersNode (location: (1,3)-(1,7))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,4)-(1,6))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
diff --git a/test/prism/snapshots/seattlerb/stabby_proc_scope.txt b/test/prism/snapshots/seattlerb/stabby_proc_scope.txt
index 898f823f24..c0b073a439 100644
--- a/test/prism/snapshots/seattlerb/stabby_proc_scope.txt
+++ b/test/prism/snapshots/seattlerb/stabby_proc_scope.txt
@@ -1,17 +1,22 @@
@ 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: [:a, :b]
├── operator_loc: (1,0)-(1,2) = "->"
├── opening_loc: (1,9)-(1,10) = "{"
├── closing_loc: (1,10)-(1,11) = "}"
├── parameters:
│ @ BlockParametersNode (location: (1,2)-(1,8))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,3)-(1,4))
│ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/seattlerb/str_backslashes.txt b/test/prism/snapshots/seattlerb/str_backslashes.txt
index ec41a89c38..e73793beb8 100644
--- a/test/prism/snapshots/seattlerb/str_backslashes.txt
+++ b/test/prism/snapshots/seattlerb/str_backslashes.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,204))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,204))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,204))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :x
diff --git a/test/prism/snapshots/seattlerb/str_double_double_escaped_newline.txt b/test/prism/snapshots/seattlerb/str_double_double_escaped_newline.txt
index 620b43f631..fa7444d7e7 100644
--- a/test/prism/snapshots/seattlerb/str_double_double_escaped_newline.txt
+++ b/test/prism/snapshots/seattlerb/str_double_double_escaped_newline.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,7))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -23,7 +25,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (1,8)-(1,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/str_double_escaped_newline.txt b/test/prism/snapshots/seattlerb/str_double_escaped_newline.txt
index 2aee91b75c..c91c913919 100644
--- a/test/prism/snapshots/seattlerb/str_double_escaped_newline.txt
+++ b/test/prism/snapshots/seattlerb/str_double_escaped_newline.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -23,7 +25,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (1,7)-(1,8))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :b
diff --git a/test/prism/snapshots/seattlerb/str_double_newline.txt b/test/prism/snapshots/seattlerb/str_double_newline.txt
index eb249cde8a..7809a9aaff 100644
--- a/test/prism/snapshots/seattlerb/str_double_newline.txt
+++ b/test/prism/snapshots/seattlerb/str_double_newline.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,3))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(2,1))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -23,7 +25,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (2,2)-(2,3))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :b
diff --git a/test/prism/snapshots/seattlerb/str_evstr.txt b/test/prism/snapshots/seattlerb/str_evstr.txt
index 7010ad0a68..98b65f00f8 100644
--- a/test/prism/snapshots/seattlerb/str_evstr.txt
+++ b/test/prism/snapshots/seattlerb/str_evstr.txt
@@ -1,22 +1,26 @@
@ 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)
│ ├── @ StringNode (location: (1,1)-(1,3))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,1)-(1,3) = "a "
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a "
│ └── @ 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/str_evstr_escape.txt b/test/prism/snapshots/seattlerb/str_evstr_escape.txt
index 3867574c7c..f6559cc822 100644
--- a/test/prism/snapshots/seattlerb/str_evstr_escape.txt
+++ b/test/prism/snapshots/seattlerb/str_evstr_escape.txt
@@ -1,22 +1,26 @@
@ ProgramNode (location: (1,0)-(1,16))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,16))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,16))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "\""
├── parts: (length: 3)
│ ├── @ StringNode (location: (1,1)-(1,3))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,1)-(1,3) = "a "
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a "
│ ├── @ 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
@@ -30,7 +34,7 @@
│ │ │ └── block: ∅
│ │ └── closing_loc: (1,6)-(1,7) = "}"
│ └── @ StringNode (location: (1,7)-(1,15))
- │ ├── flags: forced_utf8_encoding, frozen
+ │ ├── flags: static_literal, forced_utf8_encoding, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (1,7)-(1,15) = "\\302\\275"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/str_heredoc_interp.txt b/test/prism/snapshots/seattlerb/str_heredoc_interp.txt
index bb7bbba259..1261eec6c3 100644
--- a/test/prism/snapshots/seattlerb/str_heredoc_interp.txt
+++ b/test/prism/snapshots/seattlerb/str_heredoc_interp.txt
@@ -1,16 +1,20 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,4))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,4) = "<<\"\""
├── parts: (length: 2)
│ ├── @ EmbeddedStatementsNode (location: (2,0)-(2,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (2,0)-(2,2) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (2,2)-(2,3))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (2,2)-(2,3))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -24,7 +28,7 @@
│ │ │ └── block: ∅
│ │ └── closing_loc: (2,3)-(2,4) = "}"
│ └── @ StringNode (location: (2,4)-(4,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (2,4)-(4,0) = "\nblah2\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/str_interp_ternary_or_label.txt b/test/prism/snapshots/seattlerb/str_interp_ternary_or_label.txt
index 5a2f435e0e..af2fd61644 100644
--- a/test/prism/snapshots/seattlerb/str_interp_ternary_or_label.txt
+++ b/test/prism/snapshots/seattlerb/str_interp_ternary_or_label.txt
@@ -1,18 +1,23 @@
@ ProgramNode (location: (1,0)-(1,23))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,23))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,23))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "\""
├── parts: (length: 1)
│ └── @ EmbeddedStatementsNode (location: (1,1)-(1,22))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,1)-(1,3) = "\#{"
│ ├── statements:
│ │ @ StatementsNode (location: (1,3)-(1,21))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IfNode (location: (1,3)-(1,21))
+ │ │ ├── flags: ∅
│ │ ├── if_keyword_loc: ∅
│ │ ├── predicate:
│ │ │ @ CallNode (location: (1,3)-(1,7))
@@ -38,9 +43,10 @@
│ │ ├── then_keyword_loc: (1,8)-(1,9) = "?"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,10)-(1,17))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,10)-(1,17))
- │ │ │ ├── flags: ∅
+ │ │ │ ├── flags: newline
│ │ │ ├── receiver:
│ │ │ │ @ CallNode (location: (1,10)-(1,14))
│ │ │ │ ├── flags: ∅
@@ -89,12 +95,14 @@
│ │ │ └── block: ∅
│ │ ├── consequent:
│ │ │ @ ElseNode (location: (1,17)-(1,21))
+ │ │ │ ├── flags: ∅
│ │ │ ├── else_keyword_loc: (1,17)-(1,18) = ":"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (1,19)-(1,21))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ StringNode (location: (1,19)-(1,21))
- │ │ │ │ ├── flags: ∅
+ │ │ │ │ ├── flags: newline
│ │ │ │ ├── opening_loc: (1,19)-(1,20) = "\""
│ │ │ │ ├── content_loc: (1,20)-(1,20) = ""
│ │ │ │ ├── closing_loc: (1,20)-(1,21) = "\""
diff --git a/test/prism/snapshots/seattlerb/str_lit_concat_bad_encodings.txt b/test/prism/snapshots/seattlerb/str_lit_concat_bad_encodings.txt
index 0066f66e84..4a80bc3305 100644
--- a/test/prism/snapshots/seattlerb/str_lit_concat_bad_encodings.txt
+++ b/test/prism/snapshots/seattlerb/str_lit_concat_bad_encodings.txt
@@ -1,20 +1,22 @@
@ ProgramNode (location: (1,0)-(2,66))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,66))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(2,66))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── opening_loc: ∅
├── parts: (length: 2)
│ ├── @ StringNode (location: (1,0)-(1,62))
- │ │ ├── flags: forced_utf8_encoding, frozen
+ │ │ ├── flags: static_literal, forced_utf8_encoding, frozen
│ │ ├── opening_loc: (1,0)-(1,1) = "\""
│ │ ├── content_loc: (1,1)-(1,61) = "\\xE3\\xD3\\x8B\\xE3\\x83\\xBC\\x83\\xE3\\x83\\xE3\\x82\\xB3\\xA3\\x82\\x99"
│ │ ├── closing_loc: (1,61)-(1,62) = "\""
│ │ └── unescaped: "\xE3Ӌー\x83\xE3\x83コ\xA3\x82\x99"
│ └── @ StringNode (location: (2,8)-(2,66))
- │ ├── flags: forced_utf8_encoding, frozen
+ │ ├── flags: static_literal, forced_utf8_encoding, frozen
│ ├── opening_loc: (2,8)-(2,9) = "\""
│ ├── content_loc: (2,9)-(2,65) = "\\xE3\\x83\\xB3\\xE3\\x83\\x8F\\xE3\\x82\\x9A\\xC3\\xBD;foo@bar.com"
│ ├── closing_loc: (2,65)-(2,66) = "\""
diff --git a/test/prism/snapshots/seattlerb/str_newline_hash_line_number.txt b/test/prism/snapshots/seattlerb/str_newline_hash_line_number.txt
index d55d965068..1ac2e04c60 100644
--- a/test/prism/snapshots/seattlerb/str_newline_hash_line_number.txt
+++ b/test/prism/snapshots/seattlerb/str_newline_hash_line_number.txt
@@ -1,14 +1,16 @@
@ ProgramNode (location: (1,0)-(2,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ StringNode (location: (1,0)-(1,11))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,1) = "\""
│ ├── content_loc: (1,1)-(1,10) = "\\n\\n\\n\\n#"
│ ├── closing_loc: (1,10)-(1,11) = "\""
│ └── unescaped: "\n\n\n\n#"
└── @ IntegerNode (location: (2,0)-(2,1))
- ├── flags: decimal
+ ├── flags: newline, static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/seattlerb/str_pct_Q_nested.txt b/test/prism/snapshots/seattlerb/str_pct_Q_nested.txt
index 1db0e76270..76a0f5a5cf 100644
--- a/test/prism/snapshots/seattlerb/str_pct_Q_nested.txt
+++ b/test/prism/snapshots/seattlerb/str_pct_Q_nested.txt
@@ -1,22 +1,26 @@
@ ProgramNode (location: (1,0)-(1,26))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,26))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,26))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,3) = "%Q["
├── parts: (length: 3)
│ ├── @ StringNode (location: (1,3)-(1,11))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,3)-(1,11) = "before ["
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "before ["
│ ├── @ EmbeddedStatementsNode (location: (1,11)-(1,18))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,11)-(1,13) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,13)-(1,17))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,13)-(1,17))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -30,7 +34,7 @@
│ │ │ └── block: ∅
│ │ └── closing_loc: (1,17)-(1,18) = "}"
│ └── @ StringNode (location: (1,18)-(1,25))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (1,18)-(1,25) = "] after"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/str_pct_nested_nested.txt b/test/prism/snapshots/seattlerb/str_pct_nested_nested.txt
index 22c3031832..02125b374d 100644
--- a/test/prism/snapshots/seattlerb/str_pct_nested_nested.txt
+++ b/test/prism/snapshots/seattlerb/str_pct_nested_nested.txt
@@ -1,40 +1,46 @@
@ ProgramNode (location: (1,0)-(1,20))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,20))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,20))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,2) = "%{"
├── parts: (length: 3)
│ ├── @ StringNode (location: (1,2)-(1,5))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,2)-(1,5) = " { "
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " { "
│ ├── @ EmbeddedStatementsNode (location: (1,5)-(1,16))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,5)-(1,7) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,8)-(1,14))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ InterpolatedStringNode (location: (1,8)-(1,14))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,8)-(1,9) = "\""
│ │ │ ├── parts: (length: 1)
│ │ │ │ └── @ EmbeddedStatementsNode (location: (1,9)-(1,13))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (1,9)-(1,11) = "\#{"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (1,11)-(1,12))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (1,11)-(1,12))
- │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ └── closing_loc: (1,12)-(1,13) = "}"
│ │ │ └── closing_loc: (1,13)-(1,14) = "\""
│ │ └── closing_loc: (1,15)-(1,16) = "}"
│ └── @ StringNode (location: (1,16)-(1,19))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (1,16)-(1,19) = " } "
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/str_pct_q.txt b/test/prism/snapshots/seattlerb/str_pct_q.txt
index c4dd5bacae..ddcbb1ac56 100644
--- a/test/prism/snapshots/seattlerb/str_pct_q.txt
+++ b/test/prism/snapshots/seattlerb/str_pct_q.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,9))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,3) = "%q{"
├── content_loc: (1,3)-(1,8) = "a b c"
├── closing_loc: (1,8)-(1,9) = "}"
diff --git a/test/prism/snapshots/seattlerb/str_single_double_escaped_newline.txt b/test/prism/snapshots/seattlerb/str_single_double_escaped_newline.txt
index 8fa8886029..2187edc92d 100644
--- a/test/prism/snapshots/seattlerb/str_single_double_escaped_newline.txt
+++ b/test/prism/snapshots/seattlerb/str_single_double_escaped_newline.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,7))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -23,7 +25,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (1,8)-(1,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/str_single_escaped_newline.txt b/test/prism/snapshots/seattlerb/str_single_escaped_newline.txt
index c840c7688b..36028e09d0 100644
--- a/test/prism/snapshots/seattlerb/str_single_escaped_newline.txt
+++ b/test/prism/snapshots/seattlerb/str_single_escaped_newline.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -23,7 +25,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (1,7)-(1,8))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :b
diff --git a/test/prism/snapshots/seattlerb/str_single_newline.txt b/test/prism/snapshots/seattlerb/str_single_newline.txt
index 15b0f2ff72..b53d1ed81a 100644
--- a/test/prism/snapshots/seattlerb/str_single_newline.txt
+++ b/test/prism/snapshots/seattlerb/str_single_newline.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,3))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(2,1))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -23,7 +25,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (2,2)-(2,3))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :b
diff --git a/test/prism/snapshots/seattlerb/str_str.txt b/test/prism/snapshots/seattlerb/str_str.txt
index 97031c8a65..37a57d2fd6 100644
--- a/test/prism/snapshots/seattlerb/str_str.txt
+++ b/test/prism/snapshots/seattlerb/str_str.txt
@@ -1,25 +1,29 @@
@ 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)
│ ├── @ StringNode (location: (1,1)-(1,3))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,1)-(1,3) = "a "
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a "
│ └── @ EmbeddedStatementsNode (location: (1,3)-(1,9))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,3)-(1,5) = "\#{"
│ ├── statements:
│ │ @ StatementsNode (location: (1,5)-(1,8))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ StringNode (location: (1,5)-(1,8))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (1,5)-(1,6) = "'"
│ │ ├── content_loc: (1,6)-(1,7) = "b"
│ │ ├── closing_loc: (1,7)-(1,8) = "'"
diff --git a/test/prism/snapshots/seattlerb/str_str_str.txt b/test/prism/snapshots/seattlerb/str_str_str.txt
index b592d380ef..ed74c1a954 100644
--- a/test/prism/snapshots/seattlerb/str_str_str.txt
+++ b/test/prism/snapshots/seattlerb/str_str_str.txt
@@ -1,32 +1,36 @@
@ 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: mutable
+ ├── flags: newline, static_literal, mutable
├── opening_loc: (1,0)-(1,1) = "\""
├── parts: (length: 3)
│ ├── @ StringNode (location: (1,1)-(1,3))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,1)-(1,3) = "a "
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a "
│ ├── @ EmbeddedStatementsNode (location: (1,3)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,3)-(1,5) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,5)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ StringNode (location: (1,5)-(1,8))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: (1,5)-(1,6) = "'"
│ │ │ ├── content_loc: (1,6)-(1,7) = "b"
│ │ │ ├── closing_loc: (1,7)-(1,8) = "'"
│ │ │ └── unescaped: "b"
│ │ └── closing_loc: (1,8)-(1,9) = "}"
│ └── @ StringNode (location: (1,9)-(1,11))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (1,9)-(1,11) = " c"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/super_arg.txt b/test/prism/snapshots/seattlerb/super_arg.txt
index 61b5f0b631..76acc38ce7 100644
--- a/test/prism/snapshots/seattlerb/super_arg.txt
+++ b/test/prism/snapshots/seattlerb/super_arg.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ SuperNode (location: (1,0)-(1,8))
+ ├── flags: newline
├── keyword_loc: (1,0)-(1,5) = "super"
├── lparen_loc: ∅
├── arguments:
@@ -11,7 +14,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,6)-(1,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 42
├── rparen_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/symbol_empty.txt b/test/prism/snapshots/seattlerb/symbol_empty.txt
index e95543e925..945a0e3a51 100644
--- a/test/prism/snapshots/seattlerb/symbol_empty.txt
+++ b/test/prism/snapshots/seattlerb/symbol_empty.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ SymbolNode (location: (1,0)-(1,3))
- ├── flags: forced_us_ascii_encoding
+ ├── flags: newline, static_literal, forced_us_ascii_encoding
├── opening_loc: (1,0)-(1,2) = ":'"
├── value_loc: (1,2)-(1,2) = ""
├── closing_loc: (1,2)-(1,3) = "'"
diff --git a/test/prism/snapshots/seattlerb/symbol_list.txt b/test/prism/snapshots/seattlerb/symbol_list.txt
index 6750160d50..6ee21564bb 100644
--- a/test/prism/snapshots/seattlerb/symbol_list.txt
+++ b/test/prism/snapshots/seattlerb/symbol_list.txt
@@ -1,18 +1,23 @@
@ ProgramNode (location: (1,0)-(1,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,13))
- ├── flags: ∅
+ ├── flags: newline
├── elements: (length: 2)
│ ├── @ InterpolatedSymbolNode (location: (1,3)-(1,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── 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
@@ -27,12 +32,15 @@
│ │ │ └── closing_loc: (1,6)-(1,7) = "}"
│ │ └── closing_loc: ∅
│ └── @ InterpolatedSymbolNode (location: (1,8)-(1,12))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedStatementsNode (location: (1,8)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,8)-(1,10) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,10)-(1,11))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,10)-(1,11))
│ │ │ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/symbols.txt b/test/prism/snapshots/seattlerb/symbols.txt
index 30cf57c528..c7292c201f 100644
--- a/test/prism/snapshots/seattlerb/symbols.txt
+++ b/test/prism/snapshots/seattlerb/symbols.txt
@@ -1,25 +1,27 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,9))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 3)
│ ├── @ SymbolNode (location: (1,3)-(1,4))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,4) = "a"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a"
│ ├── @ SymbolNode (location: (1,5)-(1,6))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,5)-(1,6) = "b"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b"
│ └── @ SymbolNode (location: (1,7)-(1,8))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: ∅
│ ├── value_loc: (1,7)-(1,8) = "c"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/symbols_empty.txt b/test/prism/snapshots/seattlerb/symbols_empty.txt
index dc743e2be5..955a6eda72 100644
--- a/test/prism/snapshots/seattlerb/symbols_empty.txt
+++ b/test/prism/snapshots/seattlerb/symbols_empty.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,4))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 0)
├── opening_loc: (1,0)-(1,3) = "%i("
└── closing_loc: (1,3)-(1,4) = ")"
diff --git a/test/prism/snapshots/seattlerb/symbols_empty_space.txt b/test/prism/snapshots/seattlerb/symbols_empty_space.txt
index ea7ada9446..291a775b35 100644
--- a/test/prism/snapshots/seattlerb/symbols_empty_space.txt
+++ b/test/prism/snapshots/seattlerb/symbols_empty_space.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,5))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 0)
├── opening_loc: (1,0)-(1,3) = "%i("
└── closing_loc: (1,4)-(1,5) = ")"
diff --git a/test/prism/snapshots/seattlerb/symbols_interp.txt b/test/prism/snapshots/seattlerb/symbols_interp.txt
index 2ad3cc502d..373f8363cd 100644
--- a/test/prism/snapshots/seattlerb/symbols_interp.txt
+++ b/test/prism/snapshots/seattlerb/symbols_interp.txt
@@ -1,25 +1,27 @@
@ ProgramNode (location: (1,0)-(1,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,15))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 3)
│ ├── @ SymbolNode (location: (1,3)-(1,4))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,4) = "a"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a"
│ ├── @ SymbolNode (location: (1,5)-(1,12))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,5)-(1,12) = "b\#{1+1}"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b\#{1+1}"
│ └── @ SymbolNode (location: (1,13)-(1,14))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: ∅
│ ├── value_loc: (1,13)-(1,14) = "c"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/thingy.txt b/test/prism/snapshots/seattlerb/thingy.txt
index 4dd2ac44a6..edbcd8e25b 100644
--- a/test/prism/snapshots/seattlerb/thingy.txt
+++ b/test/prism/snapshots/seattlerb/thingy.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,7))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,1))
│ │ ├── flags: variable_call, ignore_visibility
@@ -25,12 +27,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (1,3)-(1,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 42
│ ├── closing_loc: (1,5)-(1,6) = ")"
│ └── block: ∅
└── @ CallNode (location: (3,0)-(3,7))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (3,0)-(3,1))
│ ├── flags: variable_call, ignore_visibility
@@ -51,7 +53,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (3,4)-(3,6))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 42
├── closing_loc: (3,6)-(3,7) = ")"
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/uminus_float.txt b/test/prism/snapshots/seattlerb/uminus_float.txt
index 0578dbbd68..dfaaf06827 100644
--- a/test/prism/snapshots/seattlerb/uminus_float.txt
+++ b/test/prism/snapshots/seattlerb/uminus_float.txt
@@ -1,7 +1,10 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ FloatNode (location: (1,0)-(1,4))
+ ├── flags: newline, static_literal
└── value: -0.0
diff --git a/test/prism/snapshots/seattlerb/unary_minus.txt b/test/prism/snapshots/seattlerb/unary_minus.txt
index 79889bffb0..d10ff3a89e 100644
--- a/test/prism/snapshots/seattlerb/unary_minus.txt
+++ b/test/prism/snapshots/seattlerb/unary_minus.txt
@@ -1,10 +1,12 @@
@ 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:
│ @ CallNode (location: (1,1)-(1,2))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/unary_plus.txt b/test/prism/snapshots/seattlerb/unary_plus.txt
index b570cbf73b..11cb2ebabd 100644
--- a/test/prism/snapshots/seattlerb/unary_plus.txt
+++ b/test/prism/snapshots/seattlerb/unary_plus.txt
@@ -1,10 +1,12 @@
@ 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:
│ @ CallNode (location: (1,1)-(1,2))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/unary_plus_on_literal.txt b/test/prism/snapshots/seattlerb/unary_plus_on_literal.txt
index 4deb857536..3431fd6cfe 100644
--- a/test/prism/snapshots/seattlerb/unary_plus_on_literal.txt
+++ b/test/prism/snapshots/seattlerb/unary_plus_on_literal.txt
@@ -1,13 +1,15 @@
@ ProgramNode (location: (1,0)-(1,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,3))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ SymbolNode (location: (1,1)-(1,3))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (1,1)-(1,2) = ":"
│ ├── value_loc: (1,2)-(1,3) = "a"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/unary_tilde.txt b/test/prism/snapshots/seattlerb/unary_tilde.txt
index 5fd1a5d00e..52a4fa8630 100644
--- a/test/prism/snapshots/seattlerb/unary_tilde.txt
+++ b/test/prism/snapshots/seattlerb/unary_tilde.txt
@@ -1,10 +1,12 @@
@ 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:
│ @ CallNode (location: (1,1)-(1,2))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/seattlerb/utf8_bom.txt b/test/prism/snapshots/seattlerb/utf8_bom.txt
index 9f0eb83b05..c26bb1741b 100644
--- a/test/prism/snapshots/seattlerb/utf8_bom.txt
+++ b/test/prism/snapshots/seattlerb/utf8_bom.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (2,0)-(2,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (2,0)-(2,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (2,0)-(2,3))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :p
@@ -15,7 +17,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (2,2)-(2,3))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 0
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/seattlerb/when_splat.txt b/test/prism/snapshots/seattlerb/when_splat.txt
index 19e70019c0..60b504dedb 100644
--- a/test/prism/snapshots/seattlerb/when_splat.txt
+++ b/test/prism/snapshots/seattlerb/when_splat.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,25))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,25))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseNode (location: (1,0)-(1,25))
+ ├── flags: newline
├── predicate:
│ @ CallNode (location: (1,5)-(1,6))
│ ├── flags: variable_call, ignore_visibility
@@ -17,9 +20,11 @@
│ └── block: ∅
├── conditions: (length: 1)
│ └── @ WhenNode (location: (1,8)-(1,20))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,8)-(1,12) = "when"
│ ├── conditions: (length: 1)
│ │ └── @ SplatNode (location: (1,13)-(1,15))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (1,13)-(1,14) = "*"
│ │ └── expression:
│ │ @ CallNode (location: (1,14)-(1,15))
diff --git a/test/prism/snapshots/seattlerb/words_interp.txt b/test/prism/snapshots/seattlerb/words_interp.txt
index 1175a6f476..4dc5944538 100644
--- a/test/prism/snapshots/seattlerb/words_interp.txt
+++ b/test/prism/snapshots/seattlerb/words_interp.txt
@@ -1,26 +1,30 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,9))
- ├── flags: ∅
+ ├── flags: newline
├── elements: (length: 1)
│ └── @ InterpolatedStringNode (location: (1,3)-(1,8))
│ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── parts: (length: 2)
│ │ ├── @ EmbeddedStatementsNode (location: (1,3)-(1,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,3)-(1,5) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (1,5)-(1,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (1,5)-(1,6))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── closing_loc: (1,6)-(1,7) = "}"
│ │ └── @ StringNode (location: (1,7)-(1,8))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,7)-(1,8) = "b"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/single_method_call_with_bang.txt b/test/prism/snapshots/single_method_call_with_bang.txt
index 4c68e0adac..8baca8888d 100644
--- a/test/prism/snapshots/single_method_call_with_bang.txt
+++ b/test/prism/snapshots/single_method_call_with_bang.txt
@@ -1,10 +1,12 @@
@ 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: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :foo!
diff --git a/test/prism/snapshots/single_quote_heredocs.txt b/test/prism/snapshots/single_quote_heredocs.txt
index 429c9daf11..0221f33e34 100644
--- a/test/prism/snapshots/single_quote_heredocs.txt
+++ b/test/prism/snapshots/single_quote_heredocs.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,8))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,8) = "<<-'EOS'"
├── content_loc: (2,0)-(3,0) = " cd L:\\Work\\MG3710IQPro\\Develop\n"
├── closing_loc: (3,0)-(4,0) = "EOS\n"
diff --git a/test/prism/snapshots/spanning_heredoc.txt b/test/prism/snapshots/spanning_heredoc.txt
index c89daaed09..f880f64434 100644
--- a/test/prism/snapshots/spanning_heredoc.txt
+++ b/test/prism/snapshots/spanning_heredoc.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (4,0)-(63,2))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (4,0)-(63,2))
+ ├── flags: ∅
└── body: (length: 14)
├── @ CallNode (location: (4,0)-(7,7))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :pp
@@ -32,17 +34,17 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 2)
│ │ │ ├── @ InterpolatedRegularExpressionNode (location: (4,13)-(7,2))
- │ │ │ │ ├── flags: ∅
+ │ │ │ │ ├── flags: static_literal
│ │ │ │ ├── opening_loc: (4,13)-(4,14) = "/"
│ │ │ │ ├── parts: (length: 2)
│ │ │ │ │ ├── @ StringNode (location: (4,14)-(4,16))
- │ │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ ├── content_loc: (4,14)-(4,16) = "b\\"
│ │ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ │ └── unescaped: "b"
│ │ │ │ │ └── @ StringNode (location: (7,0)-(7,1))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (7,0)-(7,1) = "b"
│ │ │ │ │ ├── closing_loc: ∅
@@ -59,7 +61,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (10,0)-(13,2))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :pp
@@ -76,17 +78,17 @@
│ │ │ ├── closing_loc: (12,0)-(13,0) = "A\n"
│ │ │ └── unescaped: "c\n"
│ │ └── @ InterpolatedStringNode (location: (10,9)-(13,2))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (10,9)-(10,10) = "\""
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (10,10)-(10,12))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (10,10)-(10,12) = "d\\"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "d"
│ │ │ └── @ StringNode (location: (13,0)-(13,1))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (13,0)-(13,1) = "d"
│ │ │ ├── closing_loc: ∅
@@ -95,7 +97,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (16,0)-(19,2))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :pp
@@ -112,17 +114,17 @@
│ │ │ ├── closing_loc: (18,0)-(19,0) = "A\n"
│ │ │ └── unescaped: "e\n"
│ │ └── @ InterpolatedStringNode (location: (16,9)-(19,2))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (16,9)-(16,12) = "%q["
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (16,12)-(16,14))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (16,12)-(16,14) = "f\\"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "f\\\n"
│ │ │ └── @ StringNode (location: (19,0)-(19,1))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (19,0)-(19,1) = "f"
│ │ │ ├── closing_loc: ∅
@@ -131,7 +133,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (22,0)-(25,2))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :pp
@@ -148,17 +150,17 @@
│ │ │ ├── closing_loc: (24,0)-(25,0) = "A\n"
│ │ │ └── unescaped: "g\n"
│ │ └── @ InterpolatedStringNode (location: (22,9)-(25,2))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (22,9)-(22,12) = "%Q["
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (22,12)-(22,14))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (22,12)-(22,14) = "h\\"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "h"
│ │ │ └── @ StringNode (location: (25,0)-(25,1))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (25,0)-(25,1) = "h"
│ │ │ ├── closing_loc: ∅
@@ -167,7 +169,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (28,0)-(31,2))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :pp
@@ -203,7 +205,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (35,0)-(38,2))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :pp
@@ -220,20 +222,20 @@
│ │ │ ├── closing_loc: (37,0)-(38,0) = "A\n"
│ │ │ └── unescaped: "k\n"
│ │ └── @ ArrayNode (location: (35,9)-(38,2))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 1)
│ │ │ └── @ InterpolatedStringNode (location: (35,12)-(38,1))
- │ │ │ ├── flags: ∅
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: ∅
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ StringNode (location: (35,12)-(35,14))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (35,12)-(35,14) = "l\\"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "l\n"
│ │ │ │ └── @ StringNode (location: (38,0)-(38,1))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (38,0)-(38,1) = "l"
│ │ │ │ ├── closing_loc: ∅
@@ -244,7 +246,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (41,0)-(44,2))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :pp
@@ -261,16 +263,16 @@
│ │ │ ├── closing_loc: (43,0)-(44,0) = "A\n"
│ │ │ └── unescaped: "m\n"
│ │ └── @ ArrayNode (location: (41,9)-(44,2))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ SymbolNode (location: (41,12)-(41,14))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (41,12)-(41,14) = "n\\"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "n\n"
│ │ │ └── @ SymbolNode (location: (44,0)-(44,1))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (44,0)-(44,1) = "n"
│ │ │ ├── closing_loc: ∅
@@ -280,7 +282,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (48,0)-(51,2))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :pp
@@ -297,19 +299,20 @@
│ │ │ ├── closing_loc: (50,0)-(51,0) = "A\n"
│ │ │ └── unescaped: "o\n"
│ │ └── @ ArrayNode (location: (48,9)-(51,2))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 1)
│ │ │ └── @ InterpolatedSymbolNode (location: (48,12)-(48,14))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: ∅
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ StringNode (location: (48,12)-(48,14))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (48,12)-(48,14) = "p\\"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "p\n"
│ │ │ │ └── @ StringNode (location: (48,12)-(48,14))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (48,12)-(48,14) = "p\\"
│ │ │ │ ├── closing_loc: ∅
@@ -320,28 +323,29 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ StringNode (location: (53,0)-(53,3))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (53,0)-(53,3) = "<<A"
│ ├── content_loc: (54,0)-(54,0) = ""
│ ├── closing_loc: (54,0)-(55,0) = "A\n"
│ └── unescaped: ""
├── @ MatchWriteNode (location: (53,5)-(55,13))
+ │ ├── flags: newline
│ ├── call:
│ │ @ CallNode (location: (53,5)-(55,13))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ InterpolatedRegularExpressionNode (location: (53,5)-(55,7))
- │ │ │ ├── flags: ∅
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (53,5)-(53,6) = "/"
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ StringNode (location: (53,6)-(53,7))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (53,6)-(53,7) = "\\"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: ""
│ │ │ │ └── @ StringNode (location: (55,0)-(55,6))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (55,0)-(55,6) = "(?<a>)"
│ │ │ │ ├── closing_loc: ∅
@@ -365,47 +369,50 @@
│ │ └── block: ∅
│ └── targets: (length: 1)
│ └── @ LocalVariableTargetNode (location: (53,5)-(55,7))
+ │ ├── flags: ∅
│ ├── name: :a
│ └── depth: 0
├── @ StringNode (location: (57,0)-(57,3))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (57,0)-(57,3) = "<<A"
│ ├── content_loc: (58,0)-(58,0) = ""
│ ├── closing_loc: (58,0)-(59,0) = "A\n"
│ └── unescaped: ""
├── @ InterpolatedSymbolNode (location: (57,5)-(59,2))
+ │ ├── flags: newline, static_literal
│ ├── opening_loc: (57,5)-(57,7) = ":'"
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (57,7)-(58,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (57,7)-(58,0) = "a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ └── @ StringNode (location: (59,0)-(59,1))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (59,0)-(59,1) = "b"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b"
│ └── closing_loc: (59,1)-(59,2) = "'"
├── @ StringNode (location: (61,0)-(61,3))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (61,0)-(61,3) = "<<A"
│ ├── content_loc: (62,0)-(62,0) = ""
│ ├── closing_loc: (62,0)-(63,0) = "A\n"
│ └── unescaped: ""
└── @ InterpolatedSymbolNode (location: (61,5)-(63,2))
+ ├── flags: newline, static_literal
├── opening_loc: (61,5)-(61,7) = ":\""
├── parts: (length: 2)
│ ├── @ StringNode (location: (61,7)-(62,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (61,7)-(62,0) = "a\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a\n"
│ └── @ StringNode (location: (63,0)-(63,1))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (63,0)-(63,1) = "b"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/spanning_heredoc_newlines.txt b/test/prism/snapshots/spanning_heredoc_newlines.txt
index e3609ddbba..ce57ca9662 100644
--- a/test/prism/snapshots/spanning_heredoc_newlines.txt
+++ b/test/prism/snapshots/spanning_heredoc_newlines.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(24,0))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(24,0))
+ ├── flags: ∅
└── body: (length: 6)
├── @ CallNode (location: (1,0)-(4,0))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (1,0)-(1,3))
│ │ ├── flags: ∅
@@ -29,7 +31,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (5,0)-(8,0))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (5,0)-(5,3))
│ │ ├── flags: ∅
@@ -46,7 +48,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ RegularExpressionNode (location: (5,4)-(8,0))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (5,4)-(6,0) = "%r\n"
│ │ ├── content_loc: (6,0)-(6,0) = ""
│ │ ├── closing_loc: (7,0)-(8,0) = "\n"
@@ -54,7 +56,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (9,0)-(12,0))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (9,0)-(9,3))
│ │ ├── flags: ∅
@@ -79,7 +81,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (13,0)-(16,0))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (13,0)-(13,3))
│ │ ├── flags: ∅
@@ -104,7 +106,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (17,0)-(20,0))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (17,0)-(17,3))
│ │ ├── flags: ∅
@@ -121,7 +123,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (17,4)-(20,0))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (17,4)-(18,0) = "%s\n"
│ │ ├── value_loc: (18,0)-(18,0) = ""
│ │ ├── closing_loc: (19,0)-(20,0) = "\n"
@@ -129,7 +131,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (21,0)-(24,0))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ StringNode (location: (21,0)-(21,3))
│ ├── flags: ∅
diff --git a/test/prism/snapshots/strings.txt b/test/prism/snapshots/strings.txt
index 632d2ac3b5..eeef15a6ff 100644
--- a/test/prism/snapshots/strings.txt
+++ b/test/prism/snapshots/strings.txt
@@ -1,127 +1,133 @@
@ ProgramNode (location: (1,0)-(105,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(105,4))
+ ├── flags: ∅
└── body: (length: 50)
├── @ StringNode (location: (1,0)-(1,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,2) = "%%"
│ ├── content_loc: (1,2)-(1,5) = "abc"
│ ├── closing_loc: (1,5)-(1,6) = "%"
│ └── unescaped: "abc"
├── @ 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: (5,0)-(5,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (5,0)-(5,2) = "%&"
│ ├── content_loc: (5,2)-(5,5) = "abc"
│ ├── closing_loc: (5,5)-(5,6) = "&"
│ └── unescaped: "abc"
├── @ StringNode (location: (7,0)-(7,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (7,0)-(7,2) = "%*"
│ ├── content_loc: (7,2)-(7,5) = "abc"
│ ├── closing_loc: (7,5)-(7,6) = "*"
│ └── unescaped: "abc"
├── @ StringNode (location: (9,0)-(9,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (9,0)-(9,2) = "%_"
│ ├── content_loc: (9,2)-(9,5) = "abc"
│ ├── closing_loc: (9,5)-(9,6) = "_"
│ └── unescaped: "abc"
├── @ StringNode (location: (11,0)-(11,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (11,0)-(11,2) = "%+"
│ ├── content_loc: (11,2)-(11,5) = "abc"
│ ├── closing_loc: (11,5)-(11,6) = "+"
│ └── unescaped: "abc"
├── @ StringNode (location: (13,0)-(13,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (13,0)-(13,2) = "%-"
│ ├── content_loc: (13,2)-(13,5) = "abc"
│ ├── closing_loc: (13,5)-(13,6) = "-"
│ └── unescaped: "abc"
├── @ StringNode (location: (15,0)-(15,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (15,0)-(15,2) = "%:"
│ ├── content_loc: (15,2)-(15,5) = "abc"
│ ├── closing_loc: (15,5)-(15,6) = ":"
│ └── unescaped: "abc"
├── @ StringNode (location: (17,0)-(17,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (17,0)-(17,2) = "%;"
│ ├── content_loc: (17,2)-(17,5) = "abc"
│ ├── closing_loc: (17,5)-(17,6) = ";"
│ └── unescaped: "abc"
├── @ StringNode (location: (19,0)-(19,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (19,0)-(19,2) = "%'"
│ ├── content_loc: (19,2)-(19,5) = "abc"
│ ├── closing_loc: (19,5)-(19,6) = "'"
│ └── unescaped: "abc"
├── @ StringNode (location: (21,0)-(21,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (21,0)-(21,2) = "%~"
│ ├── content_loc: (21,2)-(21,5) = "abc"
│ ├── closing_loc: (21,5)-(21,6) = "~"
│ └── unescaped: "abc"
├── @ StringNode (location: (23,0)-(23,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (23,0)-(23,2) = "%?"
│ ├── content_loc: (23,2)-(23,5) = "abc"
│ ├── closing_loc: (23,5)-(23,6) = "?"
│ └── unescaped: "abc"
├── @ ArrayNode (location: (25,0)-(25,8))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 0)
│ ├── opening_loc: (25,0)-(25,3) = "%w{"
│ └── closing_loc: (25,7)-(25,8) = "}"
├── @ StringNode (location: (27,0)-(27,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (27,0)-(27,2) = "%/"
│ ├── content_loc: (27,2)-(27,5) = "abc"
│ ├── closing_loc: (27,5)-(27,6) = "/"
│ └── unescaped: "abc"
├── @ StringNode (location: (29,0)-(29,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (29,0)-(29,2) = "%`"
│ ├── content_loc: (29,2)-(29,5) = "abc"
│ ├── closing_loc: (29,5)-(29,6) = "`"
│ └── unescaped: "abc"
├── @ InterpolatedStringNode (location: (31,0)-(31,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (31,0)-(31,1) = "\""
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedVariableNode (location: (31,1)-(31,7))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (31,1)-(31,2) = "#"
│ │ └── variable:
│ │ @ ClassVariableReadNode (location: (31,2)-(31,7))
+ │ │ ├── flags: ∅
│ │ └── name: :@@foo
│ └── closing_loc: (31,7)-(31,8) = "\""
├── @ 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"
├── @ InterpolatedStringNode (location: (35,0)-(35,17))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (35,0)-(35,2) = "%{"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (35,2)-(35,6))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (35,2)-(35,6) = "aaa "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "aaa "
│ │ ├── @ EmbeddedStatementsNode (location: (35,6)-(35,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (35,6)-(35,8) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (35,8)-(35,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (35,8)-(35,11))
│ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -135,20 +141,20 @@
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (35,11)-(35,12) = "}"
│ │ └── @ StringNode (location: (35,12)-(35,16))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (35,12)-(35,16) = " ccc"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " ccc"
│ └── closing_loc: (35,16)-(35,17) = "}"
├── @ StringNode (location: (37,0)-(37,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (37,0)-(37,2) = "%["
│ ├── content_loc: (37,2)-(37,7) = "foo[]"
│ ├── closing_loc: (37,7)-(37,8) = "]"
│ └── unescaped: "foo[]"
├── @ CallNode (location: (39,0)-(41,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (39,0)-(39,5))
│ │ ├── flags: ∅
@@ -173,55 +179,57 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ StringNode (location: (43,0)-(43,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (43,0)-(43,3) = "%q{"
│ ├── content_loc: (43,3)-(43,6) = "abc"
│ ├── closing_loc: (43,6)-(43,7) = "}"
│ └── unescaped: "abc"
├── @ SymbolNode (location: (45,0)-(45,7))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (45,0)-(45,3) = "%s["
│ ├── value_loc: (45,3)-(45,6) = "abc"
│ ├── closing_loc: (45,6)-(45,7) = "]"
│ └── unescaped: "abc"
├── @ StringNode (location: (47,0)-(47,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (47,0)-(47,2) = "%{"
│ ├── content_loc: (47,2)-(47,5) = "abc"
│ ├── closing_loc: (47,5)-(47,6) = "}"
│ └── unescaped: "abc"
├── @ StringNode (location: (49,0)-(49,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (49,0)-(49,1) = "'"
│ ├── content_loc: (49,1)-(49,1) = ""
│ ├── closing_loc: (49,1)-(49,2) = "'"
│ └── unescaped: ""
├── @ StringNode (location: (51,0)-(51,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (51,0)-(51,1) = "\""
│ ├── content_loc: (51,1)-(51,4) = "abc"
│ ├── closing_loc: (51,4)-(51,5) = "\""
│ └── unescaped: "abc"
├── @ StringNode (location: (53,0)-(53,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (53,0)-(53,1) = "\""
│ ├── content_loc: (53,1)-(53,6) = "\#@---"
│ ├── closing_loc: (53,6)-(53,7) = "\""
│ └── unescaped: "\#@---"
├── @ InterpolatedStringNode (location: (55,0)-(55,16))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (55,0)-(55,1) = "\""
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (55,1)-(55,5))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (55,1)-(55,5) = "aaa "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "aaa "
│ │ ├── @ EmbeddedStatementsNode (location: (55,5)-(55,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (55,5)-(55,7) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (55,7)-(55,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (55,7)-(55,10))
│ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -235,20 +243,20 @@
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (55,10)-(55,11) = "}"
│ │ └── @ StringNode (location: (55,11)-(55,15))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (55,11)-(55,15) = " ccc"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " ccc"
│ └── closing_loc: (55,15)-(55,16) = "\""
├── @ StringNode (location: (57,0)-(57,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (57,0)-(57,1) = "'"
│ ├── content_loc: (57,1)-(57,4) = "abc"
│ ├── closing_loc: (57,4)-(57,5) = "'"
│ └── unescaped: "abc"
├── @ ArrayNode (location: (59,0)-(59,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 3)
│ │ ├── @ StringNode (location: (59,3)-(59,4))
│ │ │ ├── flags: ∅
@@ -271,7 +279,7 @@
│ ├── opening_loc: (59,0)-(59,3) = "%w["
│ └── closing_loc: (59,8)-(59,9) = "]"
├── @ ArrayNode (location: (61,0)-(61,17))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 3)
│ │ ├── @ StringNode (location: (61,3)-(61,6))
│ │ │ ├── flags: ∅
@@ -294,7 +302,7 @@
│ ├── opening_loc: (61,0)-(61,3) = "%w["
│ └── closing_loc: (61,16)-(61,17) = "]"
├── @ ArrayNode (location: (63,0)-(63,18))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ StringNode (location: (63,3)-(63,11))
│ │ │ ├── flags: ∅
@@ -311,7 +319,7 @@
│ ├── opening_loc: (63,0)-(63,3) = "%w["
│ └── closing_loc: (63,17)-(63,18) = "]"
├── @ ArrayNode (location: (65,0)-(65,16))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ StringNode (location: (65,3)-(65,11))
│ │ │ ├── flags: ∅
@@ -328,7 +336,7 @@
│ ├── opening_loc: (65,0)-(65,3) = "%w["
│ └── closing_loc: (65,15)-(65,16) = "]"
├── @ ArrayNode (location: (67,0)-(67,14))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 3)
│ │ ├── @ StringNode (location: (67,3)-(67,4))
│ │ │ ├── flags: ∅
@@ -341,15 +349,17 @@
│ │ │ ├── opening_loc: ∅
│ │ │ ├── parts: (length: 3)
│ │ │ │ ├── @ StringNode (location: (67,5)-(67,6))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (67,5)-(67,6) = "b"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "b"
│ │ │ │ ├── @ EmbeddedStatementsNode (location: (67,6)-(67,10))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (67,6)-(67,8) = "\#{"
│ │ │ │ │ ├── statements:
│ │ │ │ │ │ @ StatementsNode (location: (67,8)-(67,9))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ └── @ CallNode (location: (67,8)-(67,9))
│ │ │ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -363,7 +373,7 @@
│ │ │ │ │ │ └── block: ∅
│ │ │ │ │ └── closing_loc: (67,9)-(67,10) = "}"
│ │ │ │ └── @ StringNode (location: (67,10)-(67,11))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (67,10)-(67,11) = "d"
│ │ │ │ ├── closing_loc: ∅
@@ -378,7 +388,7 @@
│ ├── opening_loc: (67,0)-(67,3) = "%W["
│ └── closing_loc: (67,13)-(67,14) = "]"
├── @ ArrayNode (location: (69,0)-(69,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 3)
│ │ ├── @ StringNode (location: (69,3)-(69,4))
│ │ │ ├── flags: ∅
@@ -401,7 +411,7 @@
│ ├── opening_loc: (69,0)-(69,3) = "%W["
│ └── closing_loc: (69,8)-(69,9) = "]"
├── @ ArrayNode (location: (71,0)-(75,1))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 3)
│ │ ├── @ StringNode (location: (72,2)-(72,3))
│ │ │ ├── flags: ∅
@@ -424,110 +434,114 @@
│ ├── opening_loc: (71,0)-(71,3) = "%w["
│ └── closing_loc: (75,0)-(75,1) = "]"
├── @ StringNode (location: (77,0)-(77,15))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (77,0)-(77,1) = "'"
│ ├── content_loc: (77,1)-(77,14) = "\\' foo \\' bar"
│ ├── closing_loc: (77,14)-(77,15) = "'"
│ └── unescaped: "' foo ' bar"
├── @ StringNode (location: (79,0)-(79,15))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (79,0)-(79,1) = "'"
│ ├── content_loc: (79,1)-(79,14) = "\\\\ foo \\\\ bar"
│ ├── closing_loc: (79,14)-(79,15) = "'"
│ └── unescaped: "\\ foo \\ bar"
├── @ InterpolatedStringNode (location: (81,0)-(81,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (81,0)-(81,1) = "\""
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedVariableNode (location: (81,1)-(81,6))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (81,1)-(81,2) = "#"
│ │ └── variable:
│ │ @ GlobalVariableReadNode (location: (81,2)-(81,6))
+ │ │ ├── flags: ∅
│ │ └── name: :$foo
│ └── closing_loc: (81,6)-(81,7) = "\""
├── @ InterpolatedStringNode (location: (83,0)-(83,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (83,0)-(83,1) = "\""
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedVariableNode (location: (83,1)-(83,6))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (83,1)-(83,2) = "#"
│ │ └── variable:
│ │ @ InstanceVariableReadNode (location: (83,2)-(83,6))
+ │ │ ├── flags: ∅
│ │ └── name: :@foo
│ └── closing_loc: (83,6)-(83,7) = "\""
├── @ StringNode (location: (85,0)-(85,15))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (85,0)-(85,1) = "\""
│ ├── content_loc: (85,1)-(85,14) = "\\x7 \\x23 \\x61"
│ ├── closing_loc: (85,14)-(85,15) = "\""
│ └── unescaped: "\a # a"
├── @ StringNode (location: (87,0)-(87,13))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (87,0)-(87,1) = "\""
│ ├── content_loc: (87,1)-(87,12) = "\\7 \\43 \\141"
│ ├── closing_loc: (87,12)-(87,13) = "\""
│ └── unescaped: "\a # a"
├── @ StringNode (location: (89,0)-(89,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (89,0)-(89,2) = "%["
│ ├── content_loc: (89,2)-(89,5) = "abc"
│ ├── closing_loc: (89,5)-(89,6) = "]"
│ └── unescaped: "abc"
├── @ StringNode (location: (91,0)-(91,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (91,0)-(91,2) = "%("
│ ├── content_loc: (91,2)-(91,5) = "abc"
│ ├── closing_loc: (91,5)-(91,6) = ")"
│ └── unescaped: "abc"
├── @ StringNode (location: (93,0)-(93,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (93,0)-(93,2) = "%@"
│ ├── content_loc: (93,2)-(93,5) = "abc"
│ ├── closing_loc: (93,5)-(93,6) = "@"
│ └── unescaped: "abc"
├── @ StringNode (location: (95,0)-(95,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (95,0)-(95,2) = "%$"
│ ├── content_loc: (95,2)-(95,5) = "abc"
│ ├── closing_loc: (95,5)-(95,6) = "$"
│ └── unescaped: "abc"
├── @ StringNode (location: (97,0)-(97,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (97,0)-(97,1) = "?"
│ ├── content_loc: (97,1)-(97,2) = "a"
│ ├── closing_loc: ∅
│ └── unescaped: "a"
├── @ InterpolatedStringNode (location: (99,0)-(99,6))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── opening_loc: ∅
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (99,0)-(99,2))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: (99,0)-(99,1) = "?"
│ │ │ ├── content_loc: (99,1)-(99,2) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ StringNode (location: (99,3)-(99,6))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (99,3)-(99,4) = "\""
│ │ ├── content_loc: (99,4)-(99,5) = "a"
│ │ ├── closing_loc: (99,5)-(99,6) = "\""
│ │ └── unescaped: "a"
│ └── closing_loc: ∅
├── @ StringNode (location: (101,0)-(101,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (101,0)-(101,3) = "%Q{"
│ ├── content_loc: (101,3)-(101,6) = "abc"
│ ├── closing_loc: (101,6)-(101,7) = "}"
│ └── unescaped: "abc"
├── @ StringNode (location: (103,0)-(103,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (103,0)-(103,2) = "%^"
│ ├── content_loc: (103,2)-(103,4) = "\#$"
│ ├── closing_loc: (103,4)-(103,5) = "^"
│ └── unescaped: "\#$"
└── @ StringNode (location: (105,0)-(105,4))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (105,0)-(105,2) = "%@"
├── content_loc: (105,2)-(105,3) = "#"
├── closing_loc: (105,3)-(105,4) = "@"
diff --git a/test/prism/snapshots/super.txt b/test/prism/snapshots/super.txt
index 79f9a5d5a5..a6701dd9ba 100644
--- a/test/prism/snapshots/super.txt
+++ b/test/prism/snapshots/super.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(17,21))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(17,21))
+ ├── flags: ∅
└── body: (length: 9)
├── @ ForwardingSuperNode (location: (1,0)-(1,5))
+ │ ├── flags: newline
│ └── block: ∅
├── @ SuperNode (location: (3,0)-(3,7))
+ │ ├── flags: newline
│ ├── keyword_loc: (3,0)-(3,5) = "super"
│ ├── lparen_loc: (3,5)-(3,6) = "("
│ ├── arguments: ∅
│ ├── rparen_loc: (3,6)-(3,7) = ")"
│ └── block: ∅
├── @ SuperNode (location: (5,0)-(5,8))
+ │ ├── flags: newline
│ ├── keyword_loc: (5,0)-(5,5) = "super"
│ ├── lparen_loc: (5,5)-(5,6) = "("
│ ├── arguments:
@@ -19,11 +24,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (5,6)-(5,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── rparen_loc: (5,7)-(5,8) = ")"
│ └── block: ∅
├── @ SuperNode (location: (7,0)-(7,14))
+ │ ├── flags: newline
│ ├── keyword_loc: (7,0)-(7,5) = "super"
│ ├── lparen_loc: (7,5)-(7,6) = "("
│ ├── arguments:
@@ -31,55 +37,62 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 3)
│ │ ├── @ IntegerNode (location: (7,6)-(7,7))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── @ IntegerNode (location: (7,9)-(7,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── @ IntegerNode (location: (7,12)-(7,13))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── rparen_loc: (7,13)-(7,14) = ")"
│ └── block: ∅
├── @ SuperNode (location: (9,0)-(9,11))
+ │ ├── flags: newline
│ ├── keyword_loc: (9,0)-(9,5) = "super"
│ ├── lparen_loc: ∅
│ ├── arguments: ∅
│ ├── rparen_loc: ∅
│ └── block:
│ @ BlockArgumentNode (location: (9,6)-(9,11))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ SymbolNode (location: (9,7)-(9,11))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (9,7)-(9,8) = ":"
│ │ ├── value_loc: (9,8)-(9,11) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ └── operator_loc: (9,6)-(9,7) = "&"
├── @ SuperNode (location: (11,0)-(11,12))
+ │ ├── flags: newline
│ ├── keyword_loc: (11,0)-(11,5) = "super"
│ ├── lparen_loc: (11,5)-(11,6) = "("
│ ├── arguments: ∅
│ ├── rparen_loc: (11,11)-(11,12) = ")"
│ └── block:
│ @ BlockArgumentNode (location: (11,6)-(11,11))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ SymbolNode (location: (11,7)-(11,11))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (11,7)-(11,8) = ":"
│ │ ├── value_loc: (11,8)-(11,11) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ └── operator_loc: (11,6)-(11,7) = "&"
├── @ ForwardingSuperNode (location: (13,0)-(13,8))
+ │ ├── flags: newline
│ └── block:
│ @ BlockNode (location: (13,6)-(13,8))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (13,6)-(13,7) = "{"
│ └── closing_loc: (13,7)-(13,8) = "}"
├── @ SuperNode (location: (15,0)-(15,17))
+ │ ├── flags: newline
│ ├── keyword_loc: (15,0)-(15,5) = "super"
│ ├── lparen_loc: (15,5)-(15,6) = "("
│ ├── arguments:
@@ -87,23 +100,25 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 3)
│ │ ├── @ IntegerNode (location: (15,6)-(15,7))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── @ IntegerNode (location: (15,9)-(15,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── @ IntegerNode (location: (15,12)-(15,13))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── rparen_loc: (15,13)-(15,14) = ")"
│ └── block:
│ @ BlockNode (location: (15,15)-(15,17))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (15,15)-(15,16) = "{"
│ └── closing_loc: (15,16)-(15,17) = "}"
└── @ SuperNode (location: (17,0)-(17,21))
+ ├── flags: newline
├── keyword_loc: (17,0)-(17,5) = "super"
├── lparen_loc: (17,5)-(17,6) = "("
├── arguments:
@@ -111,20 +126,21 @@
│ ├── flags: ∅
│ └── arguments: (length: 3)
│ ├── @ IntegerNode (location: (17,6)-(17,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── @ IntegerNode (location: (17,9)-(17,10))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── @ IntegerNode (location: (17,12)-(17,13))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 3
├── rparen_loc: (17,20)-(17,21) = ")"
└── block:
@ BlockArgumentNode (location: (17,15)-(17,20))
+ ├── flags: ∅
├── expression:
│ @ SymbolNode (location: (17,16)-(17,20))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (17,16)-(17,17) = ":"
│ ├── value_loc: (17,17)-(17,20) = "foo"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/symbols.txt b/test/prism/snapshots/symbols.txt
index 48ff0d634f..7cbe80c821 100644
--- a/test/prism/snapshots/symbols.txt
+++ b/test/prism/snapshots/symbols.txt
@@ -1,21 +1,26 @@
@ ProgramNode (location: (1,0)-(93,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(93,13))
+ ├── flags: ∅
└── body: (length: 47)
├── @ SymbolNode (location: (1,0)-(1,6))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (1,0)-(1,2) = ":'"
│ ├── value_loc: (1,2)-(1,5) = "abc"
│ ├── closing_loc: (1,5)-(1,6) = "'"
│ └── unescaped: "abc"
├── @ InterpolatedSymbolNode (location: (3,0)-(3,9))
+ │ ├── flags: newline
│ ├── opening_loc: (3,0)-(3,2) = ":\""
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedStatementsNode (location: (3,2)-(3,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (3,2)-(3,4) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (3,4)-(3,7))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (3,4)-(3,7))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -30,47 +35,50 @@
│ │ └── closing_loc: (3,7)-(3,8) = "}"
│ └── closing_loc: (3,8)-(3,9) = "\""
├── @ InterpolatedSymbolNode (location: (5,0)-(5,10))
+ │ ├── flags: newline
│ ├── opening_loc: (5,0)-(5,2) = ":\""
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (5,2)-(5,5))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (5,2)-(5,5) = "abc"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "abc"
│ │ └── @ EmbeddedStatementsNode (location: (5,5)-(5,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (5,5)-(5,7) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (5,7)-(5,8))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (5,7)-(5,8))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── closing_loc: (5,8)-(5,9) = "}"
│ └── closing_loc: (5,9)-(5,10) = "\""
├── @ ArrayNode (location: (7,0)-(7,20))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 4)
│ │ ├── @ SymbolNode (location: (7,1)-(7,4))
- │ │ │ ├── flags: ∅
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (7,1)-(7,2) = ":"
│ │ │ ├── value_loc: (7,2)-(7,4) = "Υ"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "Υ"
│ │ ├── @ SymbolNode (location: (7,6)-(7,9))
- │ │ │ ├── flags: ∅
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (7,6)-(7,7) = ":"
│ │ │ ├── value_loc: (7,7)-(7,9) = "ά"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "ά"
│ │ ├── @ SymbolNode (location: (7,11)-(7,14))
- │ │ │ ├── flags: ∅
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (7,11)-(7,12) = ":"
│ │ │ ├── value_loc: (7,12)-(7,14) = "ŗ"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "ŗ"
│ │ └── @ SymbolNode (location: (7,16)-(7,19))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (7,16)-(7,17) = ":"
│ │ ├── value_loc: (7,17)-(7,19) = "ρ"
│ │ ├── closing_loc: ∅
@@ -78,113 +86,115 @@
│ ├── opening_loc: (7,0)-(7,1) = "["
│ └── closing_loc: (7,19)-(7,20) = "]"
├── @ SymbolNode (location: (9,0)-(9,3))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (9,0)-(9,1) = ":"
│ ├── value_loc: (9,1)-(9,3) = "-@"
│ ├── closing_loc: ∅
│ └── unescaped: "-@"
├── @ SymbolNode (location: (11,0)-(11,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (11,0)-(11,1) = ":"
│ ├── value_loc: (11,1)-(11,2) = "-"
│ ├── closing_loc: ∅
│ └── unescaped: "-"
├── @ SymbolNode (location: (13,0)-(13,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (13,0)-(13,1) = ":"
│ ├── value_loc: (13,1)-(13,2) = "%"
│ ├── closing_loc: ∅
│ └── unescaped: "%"
├── @ SymbolNode (location: (15,0)-(15,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (15,0)-(15,1) = ":"
│ ├── value_loc: (15,1)-(15,2) = "|"
│ ├── closing_loc: ∅
│ └── unescaped: "|"
├── @ SymbolNode (location: (17,0)-(17,3))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (17,0)-(17,1) = ":"
│ ├── value_loc: (17,1)-(17,3) = "+@"
│ ├── closing_loc: ∅
│ └── unescaped: "+@"
├── @ SymbolNode (location: (19,0)-(19,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (19,0)-(19,1) = ":"
│ ├── value_loc: (19,1)-(19,2) = "+"
│ ├── closing_loc: ∅
│ └── unescaped: "+"
├── @ SymbolNode (location: (21,0)-(21,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (21,0)-(21,1) = ":"
│ ├── value_loc: (21,1)-(21,2) = "/"
│ ├── closing_loc: ∅
│ └── unescaped: "/"
├── @ SymbolNode (location: (23,0)-(23,3))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (23,0)-(23,1) = ":"
│ ├── value_loc: (23,1)-(23,3) = "**"
│ ├── closing_loc: ∅
│ └── unescaped: "**"
├── @ SymbolNode (location: (25,0)-(25,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (25,0)-(25,1) = ":"
│ ├── value_loc: (25,1)-(25,2) = "*"
│ ├── closing_loc: ∅
│ └── unescaped: "*"
├── @ SymbolNode (location: (27,0)-(27,3))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (27,0)-(27,1) = ":"
│ ├── value_loc: (27,1)-(27,3) = "~@"
│ ├── closing_loc: ∅
│ └── unescaped: "~"
├── @ ArrayNode (location: (29,0)-(29,16))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 4)
│ │ ├── @ IntegerNode (location: (29,1)-(29,2))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── @ FloatNode (location: (29,4)-(29,7))
+ │ │ │ ├── flags: static_literal
│ │ │ └── value: 1.0
│ │ ├── @ RationalNode (location: (29,9)-(29,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ ├── numerator: 1
│ │ │ └── denominator: 1
│ │ └── @ ImaginaryNode (location: (29,13)-(29,15))
+ │ │ ├── flags: static_literal
│ │ └── numeric:
│ │ @ IntegerNode (location: (29,13)-(29,14))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── opening_loc: (29,0)-(29,1) = "["
│ └── closing_loc: (29,15)-(29,16) = "]"
├── @ SymbolNode (location: (31,0)-(31,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (31,0)-(31,1) = ":"
│ ├── value_loc: (31,1)-(31,2) = "~"
│ ├── closing_loc: ∅
│ └── unescaped: "~"
├── @ SymbolNode (location: (33,0)-(33,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (33,0)-(33,1) = ":"
│ ├── value_loc: (33,1)-(33,2) = "a"
│ ├── closing_loc: ∅
│ └── unescaped: "a"
├── @ ArrayNode (location: (35,0)-(35,9))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 3)
│ │ ├── @ SymbolNode (location: (35,3)-(35,4))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (35,3)-(35,4) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ ├── @ SymbolNode (location: (35,5)-(35,6))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (35,5)-(35,6) = "b"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b"
│ │ └── @ SymbolNode (location: (35,7)-(35,8))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (35,7)-(35,8) = "c"
│ │ ├── closing_loc: ∅
@@ -192,28 +202,28 @@
│ ├── opening_loc: (35,0)-(35,3) = "%i["
│ └── closing_loc: (35,8)-(35,9) = "]"
├── @ ArrayNode (location: (37,0)-(37,24))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 4)
│ │ ├── @ SymbolNode (location: (37,3)-(37,4))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (37,3)-(37,4) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ ├── @ SymbolNode (location: (37,5)-(37,10))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (37,5)-(37,10) = "b\#{1}"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b\#{1}"
│ │ ├── @ SymbolNode (location: (37,11)-(37,16))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (37,11)-(37,16) = "\#{2}c"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "\#{2}c"
│ │ └── @ SymbolNode (location: (37,17)-(37,23))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (37,17)-(37,23) = "d\#{3}f"
│ │ ├── closing_loc: ∅
@@ -221,72 +231,81 @@
│ ├── opening_loc: (37,0)-(37,3) = "%i["
│ └── closing_loc: (37,23)-(37,24) = "]"
├── @ ArrayNode (location: (39,0)-(39,24))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 4)
│ │ ├── @ SymbolNode (location: (39,3)-(39,4))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (39,3)-(39,4) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ ├── @ InterpolatedSymbolNode (location: (39,5)-(39,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ StringNode (location: (39,5)-(39,6))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (39,5)-(39,6) = "b"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "b"
│ │ │ │ └── @ EmbeddedStatementsNode (location: (39,6)-(39,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (39,6)-(39,8) = "\#{"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (39,8)-(39,9))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (39,8)-(39,9))
- │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ └── closing_loc: (39,9)-(39,10) = "}"
│ │ │ └── closing_loc: ∅
│ │ ├── @ InterpolatedSymbolNode (location: (39,11)-(39,16))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ EmbeddedStatementsNode (location: (39,11)-(39,15))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (39,11)-(39,13) = "\#{"
│ │ │ │ │ ├── statements:
│ │ │ │ │ │ @ StatementsNode (location: (39,13)-(39,14))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ └── @ IntegerNode (location: (39,13)-(39,14))
- │ │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ │ └── value: 2
│ │ │ │ │ └── closing_loc: (39,14)-(39,15) = "}"
│ │ │ │ └── @ StringNode (location: (39,15)-(39,16))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (39,15)-(39,16) = "c"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "c"
│ │ │ └── closing_loc: ∅
│ │ └── @ InterpolatedSymbolNode (location: (39,17)-(39,23))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── parts: (length: 3)
│ │ │ ├── @ StringNode (location: (39,17)-(39,18))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (39,17)-(39,18) = "d"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "d"
│ │ │ ├── @ EmbeddedStatementsNode (location: (39,18)-(39,22))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (39,18)-(39,20) = "\#{"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (39,20)-(39,21))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (39,20)-(39,21))
- │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 3
│ │ │ │ └── closing_loc: (39,21)-(39,22) = "}"
│ │ │ └── @ StringNode (location: (39,22)-(39,23))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (39,22)-(39,23) = "f"
│ │ │ ├── closing_loc: ∅
@@ -295,22 +314,22 @@
│ ├── opening_loc: (39,0)-(39,3) = "%I["
│ └── closing_loc: (39,23)-(39,24) = "]"
├── @ SymbolNode (location: (41,0)-(41,4))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (41,0)-(41,1) = ":"
│ ├── value_loc: (41,1)-(41,4) = "@@a"
│ ├── closing_loc: ∅
│ └── unescaped: "@@a"
├── @ SymbolNode (location: (43,0)-(43,5))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── opening_loc: (43,0)-(43,1) = ":"
│ ├── value_loc: (43,1)-(43,5) = "👍"
│ ├── closing_loc: ∅
│ └── unescaped: "👍"
├── @ ArrayNode (location: (45,0)-(45,7))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (45,3)-(45,6))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (45,3)-(45,6) = "a\\b"
│ │ ├── closing_loc: ∅
@@ -318,145 +337,145 @@
│ ├── opening_loc: (45,0)-(45,3) = "%i["
│ └── closing_loc: (45,6)-(45,7) = "]"
├── @ SymbolNode (location: (47,0)-(47,3))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (47,0)-(47,1) = ":"
│ ├── value_loc: (47,1)-(47,3) = "$a"
│ ├── closing_loc: ∅
│ └── unescaped: "$a"
├── @ SymbolNode (location: (49,0)-(49,3))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (49,0)-(49,1) = ":"
│ ├── value_loc: (49,1)-(49,3) = "@a"
│ ├── closing_loc: ∅
│ └── unescaped: "@a"
├── @ 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) = "do"
│ ├── closing_loc: ∅
│ └── unescaped: "do"
├── @ SymbolNode (location: (53,0)-(53,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (53,0)-(53,1) = ":"
│ ├── value_loc: (53,1)-(53,2) = "&"
│ ├── closing_loc: ∅
│ └── unescaped: "&"
├── @ SymbolNode (location: (55,0)-(55,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (55,0)-(55,1) = ":"
│ ├── value_loc: (55,1)-(55,2) = "`"
│ ├── closing_loc: ∅
│ └── unescaped: "`"
├── @ SymbolNode (location: (57,0)-(57,3))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (57,0)-(57,1) = ":"
│ ├── value_loc: (57,1)-(57,3) = "!@"
│ ├── closing_loc: ∅
│ └── unescaped: "!"
├── @ SymbolNode (location: (59,0)-(59,3))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (59,0)-(59,1) = ":"
│ ├── value_loc: (59,1)-(59,3) = "!~"
│ ├── closing_loc: ∅
│ └── unescaped: "!~"
├── @ SymbolNode (location: (61,0)-(61,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (61,0)-(61,1) = ":"
│ ├── value_loc: (61,1)-(61,2) = "!"
│ ├── closing_loc: ∅
│ └── unescaped: "!"
├── @ 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,4))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (65,0)-(65,1) = ":"
│ ├── value_loc: (65,1)-(65,4) = "[]="
│ ├── closing_loc: ∅
│ └── unescaped: "[]="
├── @ SymbolNode (location: (67,0)-(67,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (67,0)-(67,1) = ":"
│ ├── value_loc: (67,1)-(67,2) = "^"
│ ├── 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,4))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (71,0)-(71,1) = ":"
│ ├── value_loc: (71,1)-(71,4) = "==="
│ ├── 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,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) = "<<DOC"
│ ├── content_loc: (2,0)-(2,0) = ""
│ ├── closing_loc: (2,0)-(3,0) = "DOC\n"
│ └── unescaped: ""
├── @ StringNode (location: (4,0)-(4,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (4,0)-(4,7) = "<<'DOC'"
│ ├── content_loc: (5,0)-(5,0) = ""
│ ├── closing_loc: (5,0)-(6,0) = "DOC\n"
│ └── unescaped: ""
├── @ StringNode (location: (7,0)-(7,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (7,0)-(7,6) = "<<~DOC"
│ ├── content_loc: (8,0)-(8,0) = ""
│ ├── closing_loc: (8,0)-(9,0) = "DOC\n"
│ └── unescaped: ""
├── @ StringNode (location: (10,0)-(10,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (10,0)-(10,8) = "<<~'DOC'"
│ ├── content_loc: (11,0)-(11,0) = ""
│ ├── closing_loc: (11,0)-(12,0) = "DOC\n"
│ └── unescaped: ""
├── @ StringNode (location: (13,0)-(13,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (13,0)-(13,5) = "<<DOC"
│ ├── content_loc: (14,0)-(15,0) = " a\n"
│ ├── closing_loc: (15,0)-(16,0) = "DOC\n"
│ └── unescaped: " a\n"
├── @ StringNode (location: (17,0)-(17,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (17,0)-(17,7) = "<<'DOC'"
│ ├── content_loc: (18,0)-(19,0) = " a\n"
│ ├── closing_loc: (19,0)-(20,0) = "DOC\n"
│ └── unescaped: " a\n"
├── @ InterpolatedStringNode (location: (21,0)-(21,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (21,0)-(21,5) = "<<DOC"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (22,0)-(23,2))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (22,0)-(23,2) = " a\n "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " a\n "
│ │ ├── @ EmbeddedStatementsNode (location: (23,2)-(23,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (23,2)-(23,4) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (23,4)-(23,5) = "}"
│ │ └── @ StringNode (location: (23,5)-(24,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (23,5)-(24,0) = "\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n"
│ └── closing_loc: (24,0)-(25,0) = "DOC\n"
├── @ InterpolatedStringNode (location: (26,0)-(26,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (26,0)-(26,6) = "<<~DOC"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (27,0)-(28,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (27,0)-(28,0) = " a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ ├── @ EmbeddedStatementsNode (location: (28,2)-(28,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (28,2)-(28,4) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (28,4)-(28,5) = "}"
│ │ └── @ StringNode (location: (28,5)-(29,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (28,5)-(29,0) = "\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n"
│ └── closing_loc: (29,0)-(30,0) = "DOC\n"
├── @ InterpolatedStringNode (location: (31,0)-(31,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (31,0)-(31,6) = "<<~DOC"
│ ├── parts: (length: 4)
│ │ ├── @ StringNode (location: (32,0)-(33,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (32,0)-(33,0) = " a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ ├── @ EmbeddedStatementsNode (location: (33,2)-(33,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (33,2)-(33,4) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (33,4)-(33,5) = "}"
│ │ ├── @ StringNode (location: (33,5)-(34,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (33,5)-(34,0) = "\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "\n"
│ │ └── @ StringNode (location: (34,0)-(35,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (34,0)-(35,0) = " b\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b\n"
│ └── closing_loc: (35,0)-(36,0) = "DOC\n"
├── @ InterpolatedStringNode (location: (37,0)-(37,6))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── opening_loc: (37,0)-(37,6) = "<<~DOC"
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (38,0)-(39,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (38,0)-(39,0) = " a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ └── @ StringNode (location: (39,0)-(40,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (39,0)-(40,0) = " b\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " b\n"
│ └── closing_loc: (40,0)-(41,0) = "DOC\n"
├── @ StringNode (location: (42,0)-(42,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (42,0)-(42,7) = "<<'DOC'"
│ ├── content_loc: (43,0)-(46,0) = "a\n\nb\n"
│ ├── closing_loc: (46,0)-(47,0) = "DOC\n"
│ └── unescaped: "a\n\nb\n"
├── @ StringNode (location: (48,0)-(48,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (48,0)-(48,7) = "<<'DOC'"
│ ├── content_loc: (49,0)-(52,0) = " a\n\n b\n"
│ ├── closing_loc: (52,0)-(53,0) = "DOC\n"
│ └── unescaped: " a\n\n b\n"
├── @ StringNode (location: (54,0)-(54,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (54,0)-(54,7) = "<<'DOC'"
│ ├── content_loc: (55,0)-(56,0) = " a\\nb\n"
│ ├── closing_loc: (56,0)-(57,0) = "DOC\n"
│ └── unescaped: " a\\nb\n"
├── @ InterpolatedStringNode (location: (58,0)-(58,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (58,0)-(58,5) = "<<DOC"
│ ├── parts: (length: 4)
│ │ ├── @ EmbeddedStatementsNode (location: (59,0)-(59,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (59,0)-(59,2) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (59,2)-(59,3) = "}"
│ │ ├── @ StringNode (location: (59,3)-(60,1))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (59,3)-(60,1) = "a\n "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n "
│ │ ├── @ EmbeddedStatementsNode (location: (60,1)-(60,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (60,1)-(60,3) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (60,3)-(60,4) = "}"
│ │ └── @ StringNode (location: (60,4)-(61,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (60,4)-(61,0) = "a\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a\n"
│ └── closing_loc: (61,0)-(62,0) = "DOC\n"
├── @ InterpolatedStringNode (location: (63,0)-(63,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (63,0)-(63,5) = "<<DOC"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (64,0)-(64,2))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (64,0)-(64,2) = " "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " "
│ │ ├── @ EmbeddedStatementsNode (location: (64,2)-(64,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (64,2)-(64,4) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (64,4)-(64,5) = "}"
│ │ └── @ StringNode (location: (64,5)-(66,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (64,5)-(66,0) = "\n \\\#{}\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n \#{}\n"
│ └── closing_loc: (66,0)-(67,0) = "DOC\n"
├── @ InterpolatedStringNode (location: (68,0)-(68,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (68,0)-(68,5) = "<<DOC"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (69,0)-(69,2))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (69,0)-(69,2) = " a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " a"
│ │ ├── @ EmbeddedStatementsNode (location: (69,2)-(69,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (69,2)-(69,4) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (69,4)-(69,5) = "}"
│ │ └── @ StringNode (location: (69,5)-(71,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (69,5)-(71,0) = "b\n c\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b\n c\n"
│ └── closing_loc: (71,0)-(72,0) = "DOC\n"
├── @ InterpolatedStringNode (location: (73,0)-(73,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (73,0)-(73,6) = "<<~DOC"
│ ├── parts: (length: 2)
│ │ ├── @ EmbeddedStatementsNode (location: (74,2)-(74,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (74,2)-(74,4) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (74,4)-(74,5) = "}"
│ │ └── @ StringNode (location: (74,5)-(75,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (74,5)-(75,0) = "\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n"
│ └── closing_loc: (75,0)-(76,0) = "DOC\n"
├── @ IfNode (location: (77,0)-(81,3))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (77,0)-(77,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (77,3)-(77,7))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (78,2)-(78,8))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (78,2)-(78,8))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── opening_loc: (78,2)-(78,8) = "<<~DOC"
│ │ ├── parts: (length: 2)
│ │ │ ├── @ EmbeddedStatementsNode (location: (79,4)-(79,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (79,4)-(79,6) = "\#{"
│ │ │ │ ├── statements: ∅
│ │ │ │ └── closing_loc: (79,6)-(79,7) = "}"
│ │ │ └── @ StringNode (location: (79,7)-(80,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (79,7)-(80,0) = "\n"
│ │ │ ├── closing_loc: ∅
@@ -251,29 +265,33 @@
│ ├── consequent: ∅
│ └── end_keyword_loc: (81,0)-(81,3) = "end"
├── @ IfNode (location: (83,0)-(87,3))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (83,0)-(83,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (83,3)-(83,7))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (84,2)-(84,8))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (84,2)-(84,8))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── opening_loc: (84,2)-(84,8) = "<<~DOC"
│ │ ├── parts: (length: 3)
│ │ │ ├── @ StringNode (location: (85,0)-(85,5))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (85,0)-(85,5) = " b"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "b"
│ │ │ ├── @ EmbeddedStatementsNode (location: (85,5)-(85,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (85,5)-(85,7) = "\#{"
│ │ │ │ ├── statements: ∅
│ │ │ │ └── closing_loc: (85,7)-(85,8) = "}"
│ │ │ └── @ StringNode (location: (85,8)-(86,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (85,8)-(86,0) = "\n"
│ │ │ ├── closing_loc: ∅
@@ -282,23 +300,27 @@
│ ├── consequent: ∅
│ └── end_keyword_loc: (87,0)-(87,3) = "end"
├── @ IfNode (location: (89,0)-(93,3))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (89,0)-(89,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (89,3)-(89,7))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (90,2)-(90,8))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (90,2)-(90,8))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── opening_loc: (90,2)-(90,8) = "<<~DOC"
│ │ ├── parts: (length: 2)
│ │ │ ├── @ EmbeddedStatementsNode (location: (91,4)-(91,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (91,4)-(91,6) = "\#{"
│ │ │ │ ├── statements: ∅
│ │ │ │ └── closing_loc: (91,6)-(91,7) = "}"
│ │ │ └── @ StringNode (location: (91,7)-(92,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (91,7)-(92,0) = "a\n"
│ │ │ ├── closing_loc: ∅
@@ -307,15 +329,18 @@
│ ├── consequent: ∅
│ └── end_keyword_loc: (93,0)-(93,3) = "end"
├── @ IfNode (location: (95,0)-(101,3))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (95,0)-(95,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (95,3)-(95,7))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (96,2)-(96,10))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ StringNode (location: (96,2)-(96,10))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── opening_loc: (96,2)-(96,10) = "<<-'DOC'"
│ │ ├── content_loc: (97,0)-(100,0) = " a\n\n b\n"
│ │ ├── closing_loc: (100,0)-(101,0) = " DOC\n"
@@ -323,131 +348,137 @@
│ ├── consequent: ∅
│ └── end_keyword_loc: (101,0)-(101,3) = "end"
├── @ InterpolatedStringNode (location: (103,0)-(103,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (103,0)-(103,1) = "\""
│ ├── parts: (length: 2)
│ │ ├── @ EmbeddedStatementsNode (location: (103,1)-(103,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (103,1)-(103,3) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (103,3)-(103,4) = "}"
│ │ └── @ StringNode (location: (103,4)-(103,5))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (103,4)-(103,5) = "a"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a"
│ └── closing_loc: (103,5)-(103,6) = "\""
├── @ InterpolatedStringNode (location: (105,0)-(105,12))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (105,0)-(105,2) = "%("
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (105,2)-(105,5))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (105,2)-(105,5) = "\\n\""
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "\n\""
│ │ ├── @ EmbeddedStatementsNode (location: (105,5)-(105,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (105,5)-(105,7) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (105,7)-(105,8) = "}"
│ │ └── @ StringNode (location: (105,8)-(105,11))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (105,8)-(105,11) = "\"\\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\"\n"
│ └── closing_loc: (105,11)-(105,12) = ")"
├── @ InterpolatedStringNode (location: (107,0)-(107,14))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (107,0)-(107,3) = "%Q("
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (107,3)-(107,7))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (107,3)-(107,7) = "-\\n\""
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "-\n\""
│ │ ├── @ EmbeddedStatementsNode (location: (107,7)-(107,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (107,7)-(107,9) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (107,9)-(107,10) = "}"
│ │ └── @ StringNode (location: (107,10)-(107,13))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (107,10)-(107,13) = "\"\\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\"\n"
│ └── closing_loc: (107,13)-(107,14) = ")"
├── @ InterpolatedStringNode (location: (109,0)-(111,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (109,0)-(109,1) = "\""
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (109,1)-(110,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (109,1)-(110,0) = "a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ ├── @ EmbeddedStatementsNode (location: (110,0)-(110,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (110,0)-(110,2) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (110,2)-(110,3) = "}"
│ │ └── @ StringNode (location: (110,3)-(111,1))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (110,3)-(111,1) = "\nb"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\nb"
│ └── closing_loc: (111,1)-(111,2) = "\""
├── @ InterpolatedStringNode (location: (113,0)-(114,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (113,0)-(113,1) = "\""
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (113,1)-(113,4))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (113,1)-(113,4) = "a\\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ ├── @ EmbeddedStatementsNode (location: (113,4)-(113,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (113,4)-(113,6) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (113,6)-(113,7) = "}"
│ │ └── @ StringNode (location: (113,7)-(114,1))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (113,7)-(114,1) = "\nb"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\nb"
│ └── closing_loc: (114,1)-(114,2) = "\""
├── @ InterpolatedStringNode (location: (116,0)-(117,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (116,0)-(116,1) = "\""
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (116,1)-(117,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (116,1)-(117,0) = "a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ ├── @ EmbeddedStatementsNode (location: (117,0)-(117,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (117,0)-(117,2) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (117,2)-(117,3) = "}"
│ │ └── @ StringNode (location: (117,3)-(117,6))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (117,3)-(117,6) = "\\nb"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\nb"
│ └── closing_loc: (117,6)-(117,7) = "\""
├── @ InterpolatedStringNode (location: (119,0)-(120,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: ∅
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (119,0)-(119,3))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: (119,0)-(119,1) = "'"
│ │ │ ├── content_loc: (119,1)-(119,2) = "a"
│ │ │ ├── closing_loc: (119,2)-(119,3) = "'"
@@ -457,36 +488,37 @@
│ │ ├── opening_loc: (120,0)-(120,1) = "\""
│ │ ├── parts: (length: 1)
│ │ │ └── @ EmbeddedStatementsNode (location: (120,1)-(120,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (120,1)-(120,3) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (120,3)-(120,4) = "}"
│ │ └── closing_loc: (120,4)-(120,5) = "\""
│ └── closing_loc: ∅
├── @ InterpolatedStringNode (location: (122,0)-(122,8))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── opening_loc: ∅
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (122,0)-(122,2))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: (122,0)-(122,1) = "\""
│ │ │ ├── content_loc: (122,1)-(122,1) = ""
│ │ │ ├── closing_loc: (122,1)-(122,2) = "\""
│ │ │ └── unescaped: ""
│ │ ├── @ StringNode (location: (122,3)-(122,5))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: (122,3)-(122,4) = "\""
│ │ │ ├── content_loc: (122,4)-(122,4) = ""
│ │ │ ├── closing_loc: (122,4)-(122,5) = "\""
│ │ │ └── unescaped: ""
│ │ └── @ StringNode (location: (122,6)-(122,8))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (122,6)-(122,7) = "\""
│ │ ├── content_loc: (122,7)-(122,7) = ""
│ │ ├── closing_loc: (122,7)-(122,8) = "\""
│ │ └── unescaped: ""
│ └── closing_loc: ∅
├── @ InterpolatedStringNode (location: (124,0)-(124,12))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: ∅
│ ├── parts: (length: 2)
│ │ ├── @ InterpolatedStringNode (location: (124,0)-(124,8))
@@ -494,29 +526,32 @@
│ │ │ ├── opening_loc: (124,0)-(124,1) = "\""
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ StringNode (location: (124,1)-(124,2))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (124,1)-(124,2) = "a"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "a"
│ │ │ │ └── @ EmbeddedStatementsNode (location: (124,2)-(124,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (124,2)-(124,4) = "\#{"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (124,4)-(124,6))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ InstanceVariableReadNode (location: (124,4)-(124,6))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :@a
│ │ │ │ └── closing_loc: (124,6)-(124,7) = "}"
│ │ │ └── closing_loc: (124,7)-(124,8) = "\""
│ │ └── @ StringNode (location: (124,9)-(124,12))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (124,9)-(124,10) = "\""
│ │ ├── content_loc: (124,10)-(124,11) = "b"
│ │ ├── closing_loc: (124,11)-(124,12) = "\""
│ │ └── unescaped: "b"
│ └── closing_loc: ∅
├── @ InterpolatedStringNode (location: (125,0)-(125,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: ∅
│ ├── parts: (length: 2)
│ │ ├── @ InterpolatedStringNode (location: (125,0)-(125,6))
@@ -524,26 +559,28 @@
│ │ │ ├── opening_loc: (125,0)-(125,1) = "\""
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ StringNode (location: (125,1)-(125,2))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (125,1)-(125,2) = "a"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "a"
│ │ │ │ └── @ EmbeddedVariableNode (location: (125,2)-(125,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (125,2)-(125,3) = "#"
│ │ │ │ └── variable:
│ │ │ │ @ InstanceVariableReadNode (location: (125,3)-(125,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :@a
│ │ │ └── closing_loc: (125,5)-(125,6) = "\""
│ │ └── @ StringNode (location: (125,7)-(125,10))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (125,7)-(125,8) = "\""
│ │ ├── content_loc: (125,8)-(125,9) = "b"
│ │ ├── closing_loc: (125,9)-(125,10) = "\""
│ │ └── unescaped: "b"
│ └── closing_loc: ∅
├── @ InterpolatedStringNode (location: (126,0)-(126,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: ∅
│ ├── parts: (length: 2)
│ │ ├── @ InterpolatedStringNode (location: (126,0)-(126,6))
@@ -551,26 +588,28 @@
│ │ │ ├── opening_loc: (126,0)-(126,1) = "\""
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ StringNode (location: (126,1)-(126,2))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (126,1)-(126,2) = "a"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "a"
│ │ │ │ └── @ EmbeddedVariableNode (location: (126,2)-(126,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (126,2)-(126,3) = "#"
│ │ │ │ └── variable:
│ │ │ │ @ GlobalVariableReadNode (location: (126,3)-(126,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :$a
│ │ │ └── closing_loc: (126,5)-(126,6) = "\""
│ │ └── @ StringNode (location: (126,7)-(126,10))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (126,7)-(126,8) = "\""
│ │ ├── content_loc: (126,8)-(126,9) = "b"
│ │ ├── closing_loc: (126,9)-(126,10) = "\""
│ │ └── unescaped: "b"
│ └── closing_loc: ∅
└── @ InterpolatedStringNode (location: (127,0)-(127,11))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: ∅
├── parts: (length: 2)
│ ├── @ InterpolatedStringNode (location: (127,0)-(127,7))
@@ -578,19 +617,21 @@
│ │ ├── opening_loc: (127,0)-(127,1) = "\""
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (127,1)-(127,2))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (127,1)-(127,2) = "a"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "a"
│ │ │ └── @ EmbeddedVariableNode (location: (127,2)-(127,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (127,2)-(127,3) = "#"
│ │ │ └── variable:
│ │ │ @ ClassVariableReadNode (location: (127,3)-(127,6))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :@@a
│ │ └── closing_loc: (127,6)-(127,7) = "\""
│ └── @ StringNode (location: (127,8)-(127,11))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: (127,8)-(127,9) = "\""
│ ├── content_loc: (127,9)-(127,10) = "b"
│ ├── closing_loc: (127,10)-(127,11) = "\""
diff --git a/test/prism/snapshots/unparser/corpus/semantic/kwbegin.txt b/test/prism/snapshots/unparser/corpus/semantic/kwbegin.txt
index 38486ddc12..93c2a9ace5 100644
--- a/test/prism/snapshots/unparser/corpus/semantic/kwbegin.txt
+++ b/test/prism/snapshots/unparser/corpus/semantic/kwbegin.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(42,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(42,3))
+ ├── flags: ∅
└── body: (length: 8)
├── @ 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,10 +22,12 @@
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (3,0)-(3,3) = "end"
├── @ BeginNode (location: (5,0)-(8,3))
+ │ ├── flags: newline
│ ├── begin_keyword_loc: (5,0)-(5,5) = "begin"
│ ├── statements: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (6,0)-(6,6))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (6,0)-(6,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
@@ -30,18 +36,21 @@
│ │ └── consequent: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (7,0)-(8,3))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (7,0)-(7,4) = "else"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (8,0)-(8,3) = "end"
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (8,0)-(8,3) = "end"
├── @ BeginNode (location: (10,0)-(12,3))
+ │ ├── flags: newline
│ ├── begin_keyword_loc: (10,0)-(10,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (11,2)-(11,3))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (11,2)-(11,3))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
@@ -55,12 +64,14 @@
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (12,0)-(12,3) = "end"
├── @ BeginNode (location: (14,0)-(18,3))
+ │ ├── flags: newline
│ ├── begin_keyword_loc: (14,0)-(14,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (15,2)-(15,3))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (15,2)-(15,3))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
@@ -71,15 +82,17 @@
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (16,0)-(17,3))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (16,0)-(16,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (17,2)-(17,3))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (17,2)-(17,3))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
@@ -93,12 +106,14 @@
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (18,0)-(18,3) = "end"
├── @ BeginNode (location: (20,0)-(25,3))
+ │ ├── flags: newline
│ ├── begin_keyword_loc: (20,0)-(20,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (21,2)-(22,3))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 2)
│ │ ├── @ CallNode (location: (21,2)-(21,3))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :a
@@ -108,7 +123,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── @ CallNode (location: (22,2)-(22,3))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :b
@@ -119,15 +134,17 @@
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (23,0)-(24,3))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (23,0)-(23,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ 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: :b
@@ -141,13 +158,16 @@
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (25,0)-(25,3) = "end"
├── @ BeginNode (location: (27,0)-(30,3))
+ │ ├── flags: newline
│ ├── begin_keyword_loc: (27,0)-(27,5) = "begin"
│ ├── statements: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (28,0)-(28,8))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (28,0)-(28,6) = "rescue"
│ │ ├── exceptions: (length: 1)
│ │ │ └── @ ConstantReadNode (location: (28,7)-(28,8))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :A
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
@@ -155,19 +175,23 @@
│ │ └── consequent: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (29,0)-(30,3))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (29,0)-(29,4) = "else"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (30,0)-(30,3) = "end"
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (30,0)-(30,3) = "end"
├── @ BeginNode (location: (32,0)-(32,26))
+ │ ├── flags: newline
│ ├── begin_keyword_loc: (32,0)-(32,5) = "begin"
│ ├── statements: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (32,7)-(32,15))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (32,7)-(32,13) = "rescue"
│ │ ├── exceptions: (length: 1)
│ │ │ └── @ ConstantReadNode (location: (32,14)-(32,15))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :A
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
@@ -175,18 +199,21 @@
│ │ └── consequent: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (32,17)-(32,26))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (32,17)-(32,21) = "else"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (32,23)-(32,26) = "end"
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (32,23)-(32,26) = "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
@@ -197,17 +224,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
@@ -218,17 +248,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
@@ -241,12 +274,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
diff --git a/test/prism/snapshots/unparser/corpus/semantic/literal.txt b/test/prism/snapshots/unparser/corpus/semantic/literal.txt
index 448207f5d3..0d21b59d49 100644
--- a/test/prism/snapshots/unparser/corpus/semantic/literal.txt
+++ b/test/prism/snapshots/unparser/corpus/semantic/literal.txt
@@ -1,71 +1,81 @@
@ ProgramNode (location: (1,0)-(14,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(14,10))
+ ├── flags: ∅
└── body: (length: 14)
├── @ RationalNode (location: (1,0)-(1,4))
- │ ├── flags: decimal
+ │ ├── flags: newline, static_literal, decimal
│ ├── numerator: 1
│ └── denominator: 1
├── @ RationalNode (location: (2,0)-(2,3))
- │ ├── flags: decimal
+ │ ├── flags: newline, static_literal, decimal
│ ├── numerator: 0
│ └── denominator: 1
├── @ IntegerNode (location: (3,0)-(3,3))
- │ ├── flags: hexadecimal
+ │ ├── flags: newline, static_literal, hexadecimal
│ └── value: 1
├── @ IntegerNode (location: (4,0)-(4,5))
- │ ├── flags: decimal
+ │ ├── flags: newline, static_literal, decimal
│ └── value: 1000
├── @ FloatNode (location: (5,0)-(5,4))
+ │ ├── flags: newline, static_literal
│ └── value: 10000000000.0
├── @ FloatNode (location: (6,0)-(6,14))
+ │ ├── flags: newline, static_literal
│ └── value: Infinity
├── @ FloatNode (location: (7,0)-(7,15))
+ │ ├── flags: newline, static_literal
│ └── value: -Infinity
├── @ StringNode (location: (8,0)-(8,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (8,0)-(8,1) = "?"
│ ├── content_loc: (8,1)-(8,2) = "c"
│ ├── closing_loc: ∅
│ └── unescaped: "c"
├── @ RegularExpressionNode (location: (9,0)-(9,5))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (9,0)-(9,3) = "%r("
│ ├── content_loc: (9,3)-(9,4) = "/"
│ ├── closing_loc: (9,4)-(9,5) = ")"
│ └── unescaped: "/"
├── @ RegularExpressionNode (location: (10,0)-(10,6))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (10,0)-(10,3) = "%r("
│ ├── content_loc: (10,3)-(10,5) = "\\)"
│ ├── closing_loc: (10,5)-(10,6) = ")"
│ └── unescaped: "\\)"
├── @ InterpolatedRegularExpressionNode (location: (11,0)-(11,14))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (11,0)-(11,3) = "%r("
│ ├── parts: (length: 2)
│ │ ├── @ EmbeddedStatementsNode (location: (11,3)-(11,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (11,3)-(11,5) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (11,5)-(11,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ InstanceVariableReadNode (location: (11,5)-(11,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :@bar
│ │ │ └── closing_loc: (11,9)-(11,10) = "}"
│ │ └── @ StringNode (location: (11,10)-(11,13))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (11,10)-(11,13) = "baz"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "baz"
│ └── closing_loc: (11,13)-(11,14) = ")"
├── @ FloatNode (location: (12,0)-(12,16))
+ │ ├── flags: newline, static_literal
│ └── value: Infinity
├── @ FloatNode (location: (13,0)-(13,17))
+ │ ├── flags: newline, static_literal
│ └── value: -Infinity
└── @ CallNode (location: (14,0)-(14,10))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :w
diff --git a/test/prism/snapshots/unparser/corpus/semantic/opasgn.txt b/test/prism/snapshots/unparser/corpus/semantic/opasgn.txt
index 7dd26a38dc..870942f97e 100644
--- a/test/prism/snapshots/unparser/corpus/semantic/opasgn.txt
+++ b/test/prism/snapshots/unparser/corpus/semantic/opasgn.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,25))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,25))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IndexOperatorWriteNode (location: (1,0)-(1,25))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
@@ -27,16 +29,18 @@
│ ├── opening_loc: (1,2)-(1,3) = "\""
│ ├── parts: (length: 2)
│ │ ├── @ EmbeddedStatementsNode (location: (1,3)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,3)-(1,5) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (1,5)-(1,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (1,5)-(1,7))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 42
│ │ │ └── closing_loc: (1,7)-(1,8) = "}"
│ │ └── @ StringNode (location: (1,8)-(1,10))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,8)-(1,10) = "\\n"
│ │ ├── closing_loc: ∅
@@ -52,16 +56,18 @@
├── opening_loc: (1,16)-(1,17) = "\""
├── parts: (length: 2)
│ ├── @ EmbeddedStatementsNode (location: (1,17)-(1,22))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,17)-(1,19) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,19)-(1,21))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,19)-(1,21))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ └── closing_loc: (1,21)-(1,22) = "}"
│ └── @ StringNode (location: (1,22)-(1,24))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (1,22)-(1,24) = "\\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/semantic/send.txt b/test/prism/snapshots/unparser/corpus/semantic/send.txt
index 7c152c3bfb..f403d3d2b6 100644
--- a/test/prism/snapshots/unparser/corpus/semantic/send.txt
+++ b/test/prism/snapshots/unparser/corpus/semantic/send.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(6,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(6,15))
+ ├── flags: ∅
└── body: (length: 4)
├── @ CallNode (location: (1,0)-(1,3))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
@@ -14,7 +16,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (2,0)-(2,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
@@ -25,12 +27,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (2,4)-(2,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: (2,5)-(2,6) = ")"
│ └── block: ∅
├── @ CallNode (location: (4,0)-(4,15))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (4,0)-(4,10))
│ │ ├── flags: ∅
@@ -96,7 +98,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (6,0)-(6,15))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (6,0)-(6,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/unparser/corpus/semantic/undef.txt b/test/prism/snapshots/unparser/corpus/semantic/undef.txt
index ecb073148d..4ac55f2cf3 100644
--- a/test/prism/snapshots/unparser/corpus/semantic/undef.txt
+++ b/test/prism/snapshots/unparser/corpus/semantic/undef.txt
@@ -1,27 +1,31 @@
@ ProgramNode (location: (1,0)-(2,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,14))
+ ├── flags: ∅
└── body: (length: 2)
├── @ UndefNode (location: (1,0)-(1,9))
+ │ ├── flags: newline
│ ├── names: (length: 1)
│ │ └── @ SymbolNode (location: (1,6)-(1,9))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,6)-(1,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ └── keyword_loc: (1,0)-(1,5) = "undef"
└── @ UndefNode (location: (2,0)-(2,14))
+ ├── flags: newline
├── names: (length: 2)
│ ├── @ SymbolNode (location: (2,6)-(2,9))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (2,6)-(2,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ └── @ SymbolNode (location: (2,11)-(2,14))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: ∅
│ ├── value_loc: (2,11)-(2,14) = "bar"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/semantic/while.txt b/test/prism/snapshots/unparser/corpus/semantic/while.txt
index 36bfba5be6..cc814923b2 100644
--- a/test/prism/snapshots/unparser/corpus/semantic/while.txt
+++ b/test/prism/snapshots/unparser/corpus/semantic/while.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(25,3))
+├── flags: ∅
├── locals: [:foo, :a]
└── statements:
@ StatementsNode (location: (1,0)-(25,3))
+ ├── flags: ∅
└── body: (length: 7)
├── @ UntilNode (location: (1,0)-(1,13))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (1,2)-(1,7) = "until"
│ ├── closing_loc: ∅
│ ├── predicate:
@@ -19,6 +21,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (1,11)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -26,9 +29,10 @@
│ │ └── closing_loc: (1,12)-(1,13) = "}"
│ └── statements:
│ @ StatementsNode (location: (1,0)-(1,1))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,0)-(1,1))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -38,7 +42,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ UntilNode (location: (3,0)-(5,3))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (3,0)-(3,5) = "until"
│ ├── closing_loc: (5,0)-(5,3) = "end"
│ ├── predicate:
@@ -53,6 +57,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (3,9)-(3,11))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -60,9 +65,10 @@
│ │ └── closing_loc: (3,10)-(3,11) = "}"
│ └── 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: :a
@@ -72,17 +78,20 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ WhileNode (location: (7,0)-(7,19))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (7,10)-(7,15) = "while"
│ ├── closing_loc: ∅
│ ├── predicate:
│ │ @ LocalVariableReadNode (location: (7,16)-(7,19))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ └── statements:
│ @ StatementsNode (location: (7,0)-(7,9))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableWriteNode (location: (7,0)-(7,9))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (7,0)-(7,3) = "foo"
@@ -99,11 +108,12 @@
│ │ └── block: ∅
│ └── operator_loc: (7,4)-(7,5) = "="
├── @ UntilNode (location: (9,0)-(9,18))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (9,2)-(9,7) = "until"
│ ├── closing_loc: ∅
│ ├── predicate:
│ │ @ AndNode (location: (9,8)-(9,18))
+ │ │ ├── flags: ∅
│ │ ├── left:
│ │ │ @ CallNode (location: (9,8)-(9,9))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -127,6 +137,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (9,15)-(9,18))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅
@@ -135,9 +146,10 @@
│ │ └── operator_loc: (9,10)-(9,12) = "&&"
│ └── statements:
│ @ StatementsNode (location: (9,0)-(9,1))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (9,0)-(9,1))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -147,11 +159,12 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ WhileNode (location: (11,0)-(13,3))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (11,0)-(11,5) = "while"
│ ├── closing_loc: (13,0)-(13,3) = "end"
│ ├── predicate:
│ │ @ LocalVariableWriteNode (location: (11,6)-(11,11))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ ├── depth: 0
│ │ ├── name_loc: (11,6)-(11,7) = "a"
@@ -169,12 +182,14 @@
│ │ └── operator_loc: (11,8)-(11,9) = "="
│ └── statements:
│ @ StatementsNode (location: (12,2)-(12,3))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (12,2)-(12,3))
+ │ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── @ UntilNode (location: (15,0)-(18,3))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (15,2)-(15,7) = "until"
│ ├── closing_loc: ∅
│ ├── predicate:
@@ -198,13 +213,15 @@
│ │ ├── closing_loc: (15,16)-(15,17) = ")"
│ │ └── block:
│ │ @ BlockNode (location: (15,18)-(18,3))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (17,2)-(17,3))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (17,2)-(17,3))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :c
@@ -217,20 +234,26 @@
│ │ └── closing_loc: (18,0)-(18,3) = "end"
│ └── statements:
│ @ StatementsNode (location: (15,0)-(15,1))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (15,0)-(15,1))
+ │ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
└── @ ModuleNode (location: (20,0)-(25,3))
+ ├── flags: newline
├── locals: [:foo]
├── module_keyword_loc: (20,0)-(20,6) = "module"
├── constant_path:
│ @ ConstantReadNode (location: (20,7)-(20,8))
+ │ ├── flags: ∅
│ └── name: :A
├── body:
│ @ StatementsNode (location: (21,2)-(24,5))
+ │ ├── flags: ∅
│ └── body: (length: 2)
│ ├── @ LocalVariableWriteNode (location: (21,2)-(21,11))
+ │ │ ├── flags: newline
│ │ ├── name: :foo
│ │ ├── depth: 0
│ │ ├── name_loc: (21,2)-(21,5) = "foo"
@@ -247,17 +270,20 @@
│ │ │ └── block: ∅
│ │ └── operator_loc: (21,6)-(21,7) = "="
│ └── @ WhileNode (location: (22,2)-(24,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (22,2)-(22,7) = "while"
│ ├── closing_loc: (24,2)-(24,5) = "end"
│ ├── predicate:
│ │ @ LocalVariableReadNode (location: (22,8)-(22,11))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ └── 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"
diff --git a/test/prism/snapshots/until.txt b/test/prism/snapshots/until.txt
index e855dc89f7..0e78545606 100644
--- a/test/prism/snapshots/until.txt
+++ b/test/prism/snapshots/until.txt
@@ -1,34 +1,40 @@
@ ProgramNode (location: (1,0)-(13,20))
+├── flags: ∅
├── locals: [:baz]
└── statements:
@ StatementsNode (location: (1,0)-(13,20))
+ ├── flags: ∅
└── body: (length: 7)
├── @ UntilNode (location: (1,0)-(1,18))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,5) = "until"
│ ├── closing_loc: (1,15)-(1,18) = "end"
│ ├── predicate:
│ │ @ TrueNode (location: (1,6)-(1,10))
+ │ │ └── flags: static_literal
│ └── 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: 1
├── @ UntilNode (location: (3,0)-(3,12))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (3,2)-(3,7) = "until"
│ ├── closing_loc: ∅
│ ├── predicate:
│ │ @ TrueNode (location: (3,8)-(3,12))
+ │ │ └── flags: static_literal
│ └── statements:
│ @ StatementsNode (location: (3,0)-(3,1))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ IntegerNode (location: (3,0)-(3,1))
- │ ├── flags: decimal
+ │ ├── flags: newline, static_literal, decimal
│ └── value: 1
├── @ CallNode (location: (5,0)-(5,24))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -38,27 +44,32 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,4)-(5,24))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (5,6)-(5,22))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ UntilNode (location: (5,6)-(5,22))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (5,12)-(5,17) = "until"
│ │ ├── closing_loc: ∅
│ │ ├── predicate:
│ │ │ @ TrueNode (location: (5,18)-(5,22))
+ │ │ │ └── flags: static_literal
│ │ └── statements:
│ │ @ StatementsNode (location: (5,6)-(5,11))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (5,6)-(5,11))
+ │ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (5,6)-(5,11) = "break"
│ ├── opening_loc: (5,4)-(5,5) = "{"
│ └── closing_loc: (5,23)-(5,24) = "}"
├── @ CallNode (location: (7,0)-(7,23))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -68,40 +79,47 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (7,4)-(7,23))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (7,6)-(7,21))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ UntilNode (location: (7,6)-(7,21))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (7,11)-(7,16) = "until"
│ │ ├── closing_loc: ∅
│ │ ├── predicate:
│ │ │ @ TrueNode (location: (7,17)-(7,21))
+ │ │ │ └── flags: static_literal
│ │ └── statements:
│ │ @ StatementsNode (location: (7,6)-(7,10))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (7,6)-(7,10))
+ │ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (7,6)-(7,10) = "next"
│ ├── opening_loc: (7,4)-(7,5) = "{"
│ └── closing_loc: (7,22)-(7,23) = "}"
├── @ UntilNode (location: (9,0)-(9,17))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (9,7)-(9,12) = "until"
│ ├── closing_loc: ∅
│ ├── predicate:
│ │ @ TrueNode (location: (9,13)-(9,17))
+ │ │ └── flags: static_literal
│ └── statements:
│ @ StatementsNode (location: (9,0)-(9,6))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ ReturnNode (location: (9,0)-(9,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (9,0)-(9,6) = "return"
│ └── arguments: ∅
├── @ UntilNode (location: (11,0)-(11,21))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (11,11)-(11,16) = "until"
│ ├── closing_loc: ∅
│ ├── predicate:
@@ -117,9 +135,10 @@
│ │ └── block: ∅
│ └── statements:
│ @ StatementsNode (location: (11,0)-(11,10))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (11,0)-(11,10))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
@@ -130,13 +149,13 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (11,4)-(11,6))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (11,4)-(11,5) = ":"
│ │ │ ├── value_loc: (11,5)-(11,6) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (11,8)-(11,10))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (11,8)-(11,9) = ":"
│ │ ├── value_loc: (11,9)-(11,10) = "b"
│ │ ├── closing_loc: ∅
@@ -144,11 +163,12 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ WhileNode (location: (13,0)-(13,20))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (13,4)-(13,9) = "while"
├── closing_loc: ∅
├── predicate:
│ @ MatchPredicateNode (location: (13,10)-(13,20))
+ │ ├── flags: ∅
│ ├── value:
│ │ @ CallNode (location: (13,10)-(13,13))
│ │ ├── flags: variable_call, ignore_visibility
@@ -162,14 +182,16 @@
│ │ └── block: ∅
│ ├── pattern:
│ │ @ LocalVariableTargetNode (location: (13,17)-(13,20))
+ │ │ ├── flags: ∅
│ │ ├── name: :baz
│ │ └── depth: 0
│ └── operator_loc: (13,14)-(13,16) = "in"
└── statements:
@ StatementsNode (location: (13,0)-(13,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (13,0)-(13,3))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :foo
diff --git a/test/prism/snapshots/variables.txt b/test/prism/snapshots/variables.txt
index b79612f924..3cb0ada657 100644
--- a/test/prism/snapshots/variables.txt
+++ b/test/prism/snapshots/variables.txt
@@ -1,23 +1,30 @@
@ ProgramNode (location: (1,0)-(47,17))
+├── flags: ∅
├── locals: [:abc, :foo, :bar, :baz, :a, :b, :c, :d]
└── statements:
@ StatementsNode (location: (1,0)-(47,17))
+ ├── flags: ∅
└── body: (length: 25)
├── @ ClassVariableReadNode (location: (1,0)-(1,5))
+ │ ├── flags: newline
│ └── name: :@@abc
├── @ ClassVariableWriteNode (location: (3,0)-(3,9))
+ │ ├── flags: newline
│ ├── name: :@@abc
│ ├── name_loc: (3,0)-(3,5) = "@@abc"
│ ├── value:
│ │ @ IntegerNode (location: (3,8)-(3,9))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (3,6)-(3,7) = "="
├── @ MultiWriteNode (location: (5,0)-(5,16))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ ClassVariableTargetNode (location: (5,0)-(5,5))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :@@foo
│ │ └── @ ClassVariableTargetNode (location: (5,7)-(5,12))
+ │ │ ├── flags: ∅
│ │ └── name: :@@bar
│ ├── rest: ∅
│ ├── rights: (length: 0)
@@ -26,46 +33,51 @@
│ ├── operator_loc: (5,13)-(5,14) = "="
│ └── value:
│ @ IntegerNode (location: (5,15)-(5,16))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── @ ClassVariableWriteNode (location: (7,0)-(7,12))
+ │ ├── flags: newline
│ ├── name: :@@foo
│ ├── name_loc: (7,0)-(7,5) = "@@foo"
│ ├── value:
│ │ @ ArrayNode (location: (7,8)-(7,12))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ IntegerNode (location: (7,8)-(7,9))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ IntegerNode (location: (7,11)-(7,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── operator_loc: (7,6)-(7,7) = "="
├── @ GlobalVariableWriteNode (location: (9,0)-(9,8))
+ │ ├── flags: newline
│ ├── name: :$abc
│ ├── name_loc: (9,0)-(9,4) = "$abc"
│ ├── value:
│ │ @ IntegerNode (location: (9,7)-(9,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (9,5)-(9,6) = "="
├── @ GlobalVariableReadNode (location: (11,0)-(11,4))
+ │ ├── flags: newline
│ └── name: :$abc
├── @ InstanceVariableReadNode (location: (13,0)-(13,4))
+ │ ├── flags: newline
│ └── name: :@abc
├── @ InstanceVariableWriteNode (location: (15,0)-(15,8))
+ │ ├── flags: newline
│ ├── name: :@abc
│ ├── name_loc: (15,0)-(15,4) = "@abc"
│ ├── value:
│ │ @ IntegerNode (location: (15,7)-(15,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (15,5)-(15,6) = "="
├── @ CallNode (location: (17,0)-(17,1))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -75,19 +87,23 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ LocalVariableWriteNode (location: (19,0)-(19,7))
+ │ ├── flags: newline
│ ├── name: :abc
│ ├── depth: 0
│ ├── name_loc: (19,0)-(19,3) = "abc"
│ ├── value:
│ │ @ IntegerNode (location: (19,6)-(19,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (19,4)-(19,5) = "="
├── @ MultiWriteNode (location: (21,0)-(21,14))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ GlobalVariableTargetNode (location: (21,0)-(21,4))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :$foo
│ │ └── @ GlobalVariableTargetNode (location: (21,6)-(21,10))
+ │ │ ├── flags: ∅
│ │ └── name: :$bar
│ ├── rest: ∅
│ ├── rights: (length: 0)
@@ -96,29 +112,33 @@
│ ├── operator_loc: (21,11)-(21,12) = "="
│ └── value:
│ @ IntegerNode (location: (21,13)-(21,14))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── @ GlobalVariableWriteNode (location: (23,0)-(23,11))
+ │ ├── flags: newline
│ ├── name: :$foo
│ ├── name_loc: (23,0)-(23,4) = "$foo"
│ ├── value:
│ │ @ ArrayNode (location: (23,7)-(23,11))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ IntegerNode (location: (23,7)-(23,8))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ IntegerNode (location: (23,10)-(23,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── operator_loc: (23,5)-(23,6) = "="
├── @ MultiWriteNode (location: (25,0)-(25,14))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ InstanceVariableTargetNode (location: (25,0)-(25,4))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :@foo
│ │ └── @ InstanceVariableTargetNode (location: (25,6)-(25,10))
+ │ │ ├── flags: ∅
│ │ └── name: :@bar
│ ├── rest: ∅
│ ├── rights: (length: 0)
@@ -127,74 +147,81 @@
│ ├── operator_loc: (25,11)-(25,12) = "="
│ └── value:
│ @ IntegerNode (location: (25,13)-(25,14))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── @ InstanceVariableWriteNode (location: (27,0)-(27,11))
+ │ ├── flags: newline
│ ├── name: :@foo
│ ├── name_loc: (27,0)-(27,4) = "@foo"
│ ├── value:
│ │ @ ArrayNode (location: (27,7)-(27,11))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ IntegerNode (location: (27,7)-(27,8))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ IntegerNode (location: (27,10)-(27,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── operator_loc: (27,5)-(27,6) = "="
├── @ LocalVariableWriteNode (location: (29,0)-(29,7))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (29,0)-(29,3) = "foo"
│ ├── value:
│ │ @ IntegerNode (location: (29,6)-(29,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (29,4)-(29,5) = "="
├── @ LocalVariableWriteNode (location: (29,9)-(29,19))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (29,9)-(29,12) = "foo"
│ ├── value:
│ │ @ ArrayNode (location: (29,15)-(29,19))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ IntegerNode (location: (29,15)-(29,16))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ IntegerNode (location: (29,18)-(29,19))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── operator_loc: (29,13)-(29,14) = "="
├── @ LocalVariableWriteNode (location: (31,0)-(31,10))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (31,0)-(31,3) = "foo"
│ ├── value:
│ │ @ ArrayNode (location: (31,6)-(31,10))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ IntegerNode (location: (31,6)-(31,7))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ IntegerNode (location: (31,9)-(31,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── operator_loc: (31,4)-(31,5) = "="
├── @ MultiWriteNode (location: (33,0)-(33,13))
+ │ ├── flags: newline
│ ├── lefts: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (33,0)-(33,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── rest:
│ │ @ SplatNode (location: (33,5)-(33,6))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (33,5)-(33,6) = "*"
│ │ └── expression: ∅
│ ├── rights: (length: 0)
@@ -203,49 +230,56 @@
│ ├── operator_loc: (33,7)-(33,8) = "="
│ └── value:
│ @ ArrayNode (location: (33,9)-(33,13))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── elements: (length: 2)
│ │ ├── @ IntegerNode (location: (33,9)-(33,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ IntegerNode (location: (33,12)-(33,13))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── opening_loc: ∅
│ └── closing_loc: ∅
├── @ MultiWriteNode (location: (35,0)-(35,11))
+ │ ├── flags: newline
│ ├── lefts: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (35,0)-(35,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── rest:
│ │ @ ImplicitRestNode (location: (35,3)-(35,4))
+ │ │ └── flags: ∅
│ ├── rights: (length: 0)
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── operator_loc: (35,5)-(35,6) = "="
│ └── value:
│ @ ArrayNode (location: (35,7)-(35,11))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── elements: (length: 2)
│ │ ├── @ IntegerNode (location: (35,7)-(35,8))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ IntegerNode (location: (35,10)-(35,11))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── opening_loc: ∅
│ └── closing_loc: ∅
├── @ MultiWriteNode (location: (37,0)-(37,16))
+ │ ├── flags: newline
│ ├── lefts: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (37,0)-(37,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── rest:
│ │ @ SplatNode (location: (37,5)-(37,9))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (37,5)-(37,6) = "*"
│ │ └── expression:
│ │ @ LocalVariableTargetNode (location: (37,6)-(37,9))
+ │ │ ├── flags: ∅
│ │ ├── name: :bar
│ │ └── depth: 0
│ ├── rights: (length: 0)
@@ -254,27 +288,32 @@
│ ├── operator_loc: (37,10)-(37,11) = "="
│ └── value:
│ @ ArrayNode (location: (37,12)-(37,16))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── elements: (length: 2)
│ │ ├── @ IntegerNode (location: (37,12)-(37,13))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ IntegerNode (location: (37,15)-(37,16))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── opening_loc: ∅
│ └── closing_loc: ∅
├── @ MultiWriteNode (location: (39,0)-(39,27))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ LocalVariableTargetNode (location: (39,0)-(39,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :foo
│ │ │ └── depth: 0
│ │ └── @ MultiTargetNode (location: (39,5)-(39,15))
+ │ │ ├── flags: ∅
│ │ ├── lefts: (length: 2)
│ │ │ ├── @ LocalVariableTargetNode (location: (39,6)-(39,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :bar
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableTargetNode (location: (39,11)-(39,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :baz
│ │ │ └── depth: 0
│ │ ├── rest: ∅
@@ -291,22 +330,23 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ IntegerNode (location: (39,18)-(39,19))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ ArrayNode (location: (39,21)-(39,27))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ IntegerNode (location: (39,22)-(39,23))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ └── @ IntegerNode (location: (39,25)-(39,26))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ ├── opening_loc: (39,21)-(39,22) = "["
│ │ └── closing_loc: (39,26)-(39,27) = "]"
│ ├── opening_loc: ∅
│ └── closing_loc: ∅
├── @ LocalVariableWriteNode (location: (41,0)-(41,10))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (41,0)-(41,3) = "foo"
@@ -315,36 +355,41 @@
│ │ ├── flags: contains_splat
│ │ ├── elements: (length: 1)
│ │ │ └── @ SplatNode (location: (41,6)-(41,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (41,6)-(41,7) = "*"
│ │ │ └── expression:
│ │ │ @ LocalVariableReadNode (location: (41,7)-(41,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :bar
│ │ │ └── depth: 0
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── operator_loc: (41,4)-(41,5) = "="
├── @ ConstantWriteNode (location: (43,0)-(43,10))
+ │ ├── flags: newline
│ ├── name: :Foo
│ ├── name_loc: (43,0)-(43,3) = "Foo"
│ ├── value:
│ │ @ ArrayNode (location: (43,6)-(43,10))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ IntegerNode (location: (43,6)-(43,7))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ IntegerNode (location: (43,9)-(43,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── operator_loc: (43,4)-(43,5) = "="
├── @ ParenthesesNode (location: (45,0)-(45,9))
+ │ ├── flags: newline
│ ├── body:
│ │ @ StatementsNode (location: (45,1)-(45,8))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 3)
│ │ ├── @ CallNode (location: (45,1)-(45,2))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :a
@@ -354,7 +399,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── @ CallNode (location: (45,4)-(45,5))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
@@ -364,7 +409,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── @ CallNode (location: (45,7)-(45,8))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :c
@@ -376,16 +421,21 @@
│ ├── opening_loc: (45,0)-(45,1) = "("
│ └── closing_loc: (45,8)-(45,9) = ")"
└── @ MultiWriteNode (location: (47,0)-(47,17))
+ ├── flags: newline
├── lefts: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (47,0)-(47,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── @ MultiTargetNode (location: (47,3)-(47,9))
+ │ │ ├── flags: ∅
│ │ ├── lefts: (length: 2)
│ │ │ ├── @ LocalVariableTargetNode (location: (47,4)-(47,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :b
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableTargetNode (location: (47,7)-(47,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :c
│ │ │ └── depth: 0
│ │ ├── rest: ∅
@@ -393,6 +443,7 @@
│ │ ├── lparen_loc: (47,3)-(47,4) = "("
│ │ └── rparen_loc: (47,8)-(47,9) = ")"
│ └── @ LocalVariableTargetNode (location: (47,11)-(47,12))
+ │ ├── flags: ∅
│ ├── name: :d
│ └── depth: 0
├── rest: ∅
@@ -402,7 +453,7 @@
├── operator_loc: (47,13)-(47,14) = "="
└── value:
@ ArrayNode (location: (47,15)-(47,17))
- ├── flags: ∅
+ ├── flags: static_literal
├── elements: (length: 0)
├── opening_loc: (47,15)-(47,16) = "["
└── closing_loc: (47,16)-(47,17) = "]"
diff --git a/test/prism/snapshots/while.txt b/test/prism/snapshots/while.txt
index a2972face0..c0022eb50c 100644
--- a/test/prism/snapshots/while.txt
+++ b/test/prism/snapshots/while.txt
@@ -1,34 +1,40 @@
@ ProgramNode (location: (1,0)-(23,20))
+├── flags: ∅
├── locals: [:baz]
└── statements:
@ StatementsNode (location: (1,0)-(23,20))
+ ├── flags: ∅
└── body: (length: 12)
├── @ WhileNode (location: (1,0)-(1,18))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,5) = "while"
│ ├── closing_loc: (1,15)-(1,18) = "end"
│ ├── predicate:
│ │ @ TrueNode (location: (1,6)-(1,10))
+ │ │ └── flags: static_literal
│ └── 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: 1
├── @ WhileNode (location: (3,0)-(3,12))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (3,2)-(3,7) = "while"
│ ├── closing_loc: ∅
│ ├── predicate:
│ │ @ TrueNode (location: (3,8)-(3,12))
+ │ │ └── flags: static_literal
│ └── statements:
│ @ StatementsNode (location: (3,0)-(3,1))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ IntegerNode (location: (3,0)-(3,1))
- │ ├── flags: decimal
+ │ ├── flags: newline, static_literal, decimal
│ └── value: 1
├── @ CallNode (location: (5,0)-(5,24))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -38,27 +44,32 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,4)-(5,24))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (5,6)-(5,22))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ WhileNode (location: (5,6)-(5,22))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (5,12)-(5,17) = "while"
│ │ ├── closing_loc: ∅
│ │ ├── predicate:
│ │ │ @ TrueNode (location: (5,18)-(5,22))
+ │ │ │ └── flags: static_literal
│ │ └── statements:
│ │ @ StatementsNode (location: (5,6)-(5,11))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (5,6)-(5,11))
+ │ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (5,6)-(5,11) = "break"
│ ├── opening_loc: (5,4)-(5,5) = "{"
│ └── closing_loc: (5,23)-(5,24) = "}"
├── @ CallNode (location: (7,0)-(7,23))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -68,40 +79,47 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (7,4)-(7,23))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (7,6)-(7,21))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ WhileNode (location: (7,6)-(7,21))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (7,11)-(7,16) = "while"
│ │ ├── closing_loc: ∅
│ │ ├── predicate:
│ │ │ @ TrueNode (location: (7,17)-(7,21))
+ │ │ │ └── flags: static_literal
│ │ └── statements:
│ │ @ StatementsNode (location: (7,6)-(7,10))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (7,6)-(7,10))
+ │ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (7,6)-(7,10) = "next"
│ ├── opening_loc: (7,4)-(7,5) = "{"
│ └── closing_loc: (7,22)-(7,23) = "}"
├── @ WhileNode (location: (9,0)-(9,17))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (9,7)-(9,12) = "while"
│ ├── closing_loc: ∅
│ ├── predicate:
│ │ @ TrueNode (location: (9,13)-(9,17))
+ │ │ └── flags: static_literal
│ └── statements:
│ @ StatementsNode (location: (9,0)-(9,6))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ ReturnNode (location: (9,0)-(9,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (9,0)-(9,6) = "return"
│ └── arguments: ∅
├── @ WhileNode (location: (11,0)-(11,21))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (11,11)-(11,16) = "while"
│ ├── closing_loc: ∅
│ ├── predicate:
@@ -117,9 +135,10 @@
│ │ └── block: ∅
│ └── statements:
│ @ StatementsNode (location: (11,0)-(11,10))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (11,0)-(11,10))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
@@ -130,13 +149,13 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (11,4)-(11,6))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (11,4)-(11,5) = ":"
│ │ │ ├── value_loc: (11,5)-(11,6) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (11,8)-(11,10))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (11,8)-(11,9) = ":"
│ │ ├── value_loc: (11,9)-(11,10) = "b"
│ │ ├── closing_loc: ∅
@@ -144,7 +163,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (13,0)-(13,58))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -154,23 +173,28 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (13,4)-(13,58))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (13,6)-(13,56))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ WhileNode (location: (13,6)-(13,56))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (13,6)-(13,11) = "while"
│ │ ├── closing_loc: (13,53)-(13,56) = "end"
│ │ ├── predicate:
│ │ │ @ DefNode (location: (13,12)-(13,44))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :foo
│ │ │ ├── name_loc: (13,21)-(13,24) = "foo"
│ │ │ ├── receiver:
│ │ │ │ @ SelfNode (location: (13,16)-(13,20))
+ │ │ │ │ └── flags: ∅
│ │ │ ├── parameters:
│ │ │ │ @ ParametersNode (location: (13,25)-(13,39))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 1)
│ │ │ │ │ └── @ OptionalParameterNode (location: (13,25)-(13,39))
@@ -190,6 +214,7 @@
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block:
│ │ │ │ │ @ BlockNode (location: (13,33)-(13,39))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── locals: []
│ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅
@@ -210,14 +235,16 @@
│ │ │ └── end_keyword_loc: (13,41)-(13,44) = "end"
│ │ └── statements:
│ │ @ StatementsNode (location: (13,46)-(13,51))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (13,46)-(13,51))
+ │ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (13,46)-(13,51) = "break"
│ ├── opening_loc: (13,4)-(13,5) = "{"
│ └── closing_loc: (13,57)-(13,58) = "}"
├── @ CallNode (location: (15,0)-(15,55))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -227,28 +254,34 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (15,4)-(15,55))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (15,6)-(15,53))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ WhileNode (location: (15,6)-(15,53))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (15,6)-(15,11) = "while"
│ │ ├── closing_loc: (15,50)-(15,53) = "end"
│ │ ├── predicate:
│ │ │ @ ClassNode (location: (15,12)-(15,41))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: [:a]
│ │ │ ├── class_keyword_loc: (15,12)-(15,17) = "class"
│ │ │ ├── constant_path:
│ │ │ │ @ ConstantReadNode (location: (15,18)-(15,21))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :Foo
│ │ │ ├── inheritance_operator_loc: ∅
│ │ │ ├── superclass: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (15,22)-(15,36))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ LocalVariableWriteNode (location: (15,22)-(15,36))
+ │ │ │ │ ├── flags: newline
│ │ │ │ ├── name: :a
│ │ │ │ ├── depth: 0
│ │ │ │ ├── name_loc: (15,22)-(15,23) = "a"
@@ -264,6 +297,7 @@
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block:
│ │ │ │ │ @ BlockNode (location: (15,30)-(15,36))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── locals: []
│ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅
@@ -274,14 +308,16 @@
│ │ │ └── name: :Foo
│ │ └── statements:
│ │ @ StatementsNode (location: (15,43)-(15,48))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (15,43)-(15,48))
+ │ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (15,43)-(15,48) = "break"
│ ├── opening_loc: (15,4)-(15,5) = "{"
│ └── closing_loc: (15,54)-(15,55) = "}"
├── @ CallNode (location: (17,0)-(17,56))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -291,27 +327,32 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (17,4)-(17,56))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (17,6)-(17,54))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ WhileNode (location: (17,6)-(17,54))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (17,6)-(17,11) = "while"
│ │ ├── closing_loc: (17,51)-(17,54) = "end"
│ │ ├── predicate:
│ │ │ @ SingletonClassNode (location: (17,12)-(17,42))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── class_keyword_loc: (17,12)-(17,17) = "class"
│ │ │ ├── operator_loc: (17,18)-(17,20) = "<<"
│ │ │ ├── expression:
│ │ │ │ @ SelfNode (location: (17,21)-(17,25))
+ │ │ │ │ └── flags: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (17,27)-(17,37))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (17,27)-(17,37))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :tap
@@ -321,6 +362,7 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block:
│ │ │ │ @ BlockNode (location: (17,31)-(17,37))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅
@@ -329,14 +371,16 @@
│ │ │ └── end_keyword_loc: (17,39)-(17,42) = "end"
│ │ └── statements:
│ │ @ StatementsNode (location: (17,44)-(17,49))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (17,44)-(17,49))
+ │ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (17,44)-(17,49) = "break"
│ ├── opening_loc: (17,4)-(17,5) = "{"
│ └── closing_loc: (17,55)-(17,56) = "}"
├── @ CallNode (location: (19,0)-(19,60))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
@@ -346,26 +390,32 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (19,4)-(19,60))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (19,6)-(19,58))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ WhileNode (location: (19,6)-(19,58))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (19,6)-(19,11) = "while"
│ │ ├── closing_loc: (19,55)-(19,58) = "end"
│ │ ├── predicate:
│ │ │ @ SingletonClassNode (location: (19,12)-(19,46))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: [:a]
│ │ │ ├── class_keyword_loc: (19,12)-(19,17) = "class"
│ │ │ ├── operator_loc: (19,18)-(19,20) = "<<"
│ │ │ ├── expression:
│ │ │ │ @ SelfNode (location: (19,21)-(19,25))
+ │ │ │ │ └── flags: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (19,27)-(19,41))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ LocalVariableWriteNode (location: (19,27)-(19,41))
+ │ │ │ │ ├── flags: newline
│ │ │ │ ├── name: :a
│ │ │ │ ├── depth: 0
│ │ │ │ ├── name_loc: (19,27)-(19,28) = "a"
@@ -381,6 +431,7 @@
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block:
│ │ │ │ │ @ BlockNode (location: (19,35)-(19,41))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── locals: []
│ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅
@@ -390,27 +441,31 @@
│ │ │ └── end_keyword_loc: (19,43)-(19,46) = "end"
│ │ └── statements:
│ │ @ StatementsNode (location: (19,48)-(19,53))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (19,48)-(19,53))
+ │ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (19,48)-(19,53) = "break"
│ ├── opening_loc: (19,4)-(19,5) = "{"
│ └── closing_loc: (19,59)-(19,60) = "}"
├── @ WhileNode (location: (21,0)-(21,31))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (21,0)-(21,5) = "while"
│ ├── closing_loc: (21,28)-(21,31) = "end"
│ ├── predicate:
│ │ @ DefNode (location: (21,6)-(21,26))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ ├── name_loc: (21,10)-(21,13) = "foo"
│ │ ├── receiver: ∅
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (21,16)-(21,26))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (21,16)-(21,26))
- │ │ │ ├── flags: ignore_visibility
+ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
@@ -420,6 +475,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (21,20)-(21,26))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅
@@ -434,11 +490,12 @@
│ │ └── end_keyword_loc: ∅
│ └── statements: ∅
└── @ WhileNode (location: (23,0)-(23,20))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (23,4)-(23,9) = "while"
├── closing_loc: ∅
├── predicate:
│ @ MatchPredicateNode (location: (23,10)-(23,20))
+ │ ├── flags: ∅
│ ├── value:
│ │ @ CallNode (location: (23,10)-(23,13))
│ │ ├── flags: variable_call, ignore_visibility
@@ -452,14 +509,16 @@
│ │ └── block: ∅
│ ├── pattern:
│ │ @ LocalVariableTargetNode (location: (23,17)-(23,20))
+ │ │ ├── flags: ∅
│ │ ├── name: :baz
│ │ └── depth: 0
│ └── operator_loc: (23,14)-(23,16) = "in"
└── statements:
@ StatementsNode (location: (23,0)-(23,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (23,0)-(23,3))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :foo
diff --git a/test/prism/snapshots/whitequark/__ENCODING__.txt b/test/prism/snapshots/whitequark/__ENCODING__.txt
index 1b223bd8fe..f04dfb6cb8 100644
--- a/test/prism/snapshots/whitequark/__ENCODING__.txt
+++ b/test/prism/snapshots/whitequark/__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/whitequark/__ENCODING___legacy_.txt b/test/prism/snapshots/whitequark/__ENCODING___legacy_.txt
index 1b223bd8fe..f04dfb6cb8 100644
--- a/test/prism/snapshots/whitequark/__ENCODING___legacy_.txt
+++ b/test/prism/snapshots/whitequark/__ENCODING___legacy_.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/whitequark/alias.txt b/test/prism/snapshots/whitequark/alias.txt
index 509ea2b633..d64a22b946 100644
--- a/test/prism/snapshots/whitequark/alias.txt
+++ b/test/prism/snapshots/whitequark/alias.txt
@@ -1,19 +1,22 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ AliasMethodNode (location: (1,0)-(1,14))
+ ├── 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,14))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: ∅
│ ├── value_loc: (1,11)-(1,14) = "bar"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/alias_gvar.txt b/test/prism/snapshots/whitequark/alias_gvar.txt
index d13f816555..a958cd781f 100644
--- a/test/prism/snapshots/whitequark/alias_gvar.txt
+++ b/test/prism/snapshots/whitequark/alias_gvar.txt
@@ -1,21 +1,29 @@
@ ProgramNode (location: (1,0)-(3,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,11))
+ ├── flags: ∅
└── body: (length: 2)
├── @ AliasGlobalVariableNode (location: (1,0)-(1,11))
+ │ ├── flags: newline
│ ├── new_name:
│ │ @ GlobalVariableReadNode (location: (1,6)-(1,8))
+ │ │ ├── flags: ∅
│ │ └── name: :$a
│ ├── old_name:
│ │ @ BackReferenceReadNode (location: (1,9)-(1,11))
+ │ │ ├── flags: ∅
│ │ └── name: :$+
│ └── keyword_loc: (1,0)-(1,5) = "alias"
└── @ AliasGlobalVariableNode (location: (3,0)-(3,11))
+ ├── flags: newline
├── new_name:
│ @ GlobalVariableReadNode (location: (3,6)-(3,8))
+ │ ├── flags: ∅
│ └── name: :$a
├── old_name:
│ @ GlobalVariableReadNode (location: (3,9)-(3,11))
+ │ ├── flags: ∅
│ └── name: :$b
└── keyword_loc: (3,0)-(3,5) = "alias"
diff --git a/test/prism/snapshots/whitequark/ambiuous_quoted_label_in_ternary_operator.txt b/test/prism/snapshots/whitequark/ambiuous_quoted_label_in_ternary_operator.txt
index c6a5c14934..5406a2d2f1 100644
--- a/test/prism/snapshots/whitequark/ambiuous_quoted_label_in_ternary_operator.txt
+++ b/test/prism/snapshots/whitequark/ambiuous_quoted_label_in_ternary_operator.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,15))
+ ├── 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,10))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,4)-(1,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,4)-(1,5))
│ │ ├── flags: variable_call, ignore_visibility
@@ -51,10 +55,13 @@
│ └── block: ∅
├── consequent:
│ @ ElseNode (location: (1,10)-(1,15))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,10)-(1,11) = ":"
│ ├── statements:
│ │ @ StatementsNode (location: (1,12)-(1,15))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NilNode (location: (1,12)-(1,15))
+ │ │ └── flags: newline, static_literal
│ └── end_keyword_loc: ∅
└── end_keyword_loc: ∅
diff --git a/test/prism/snapshots/whitequark/and.txt b/test/prism/snapshots/whitequark/and.txt
index d2e1b33c50..3f548d55eb 100644
--- a/test/prism/snapshots/whitequark/and.txt
+++ b/test/prism/snapshots/whitequark/and.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(3,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,11))
+ ├── flags: ∅
└── body: (length: 2)
├── @ AndNode (location: (1,0)-(1,10))
+ │ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -28,6 +31,7 @@
│ │ └── block: ∅
│ └── operator_loc: (1,4)-(1,6) = "&&"
└── @ AndNode (location: (3,0)-(3,11))
+ ├── flags: newline
├── left:
│ @ CallNode (location: (3,0)-(3,3))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/and_asgn.txt b/test/prism/snapshots/whitequark/and_asgn.txt
index 5c7a9a2319..f07cfd749d 100644
--- a/test/prism/snapshots/whitequark/and_asgn.txt
+++ b/test/prism/snapshots/whitequark/and_asgn.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,15))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallAndWriteNode (location: (1,0)-(1,11))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -23,10 +25,10 @@
│ ├── operator_loc: (1,6)-(1,9) = "&&="
│ └── value:
│ @ IntegerNode (location: (1,10)-(1,11))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
└── @ IndexAndWriteNode (location: (3,0)-(3,15))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (3,0)-(3,3))
│ ├── flags: variable_call, ignore_visibility
@@ -45,15 +47,15 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ IntegerNode (location: (3,4)-(3,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ └── @ IntegerNode (location: (3,7)-(3,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: (3,8)-(3,9) = "]"
├── block: ∅
├── operator_loc: (3,10)-(3,13) = "&&="
└── value:
@ IntegerNode (location: (3,14)-(3,15))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
└── value: 2
diff --git a/test/prism/snapshots/whitequark/and_or_masgn.txt b/test/prism/snapshots/whitequark/and_or_masgn.txt
index 05aff040cd..208120c02e 100644
--- a/test/prism/snapshots/whitequark/and_or_masgn.txt
+++ b/test/prism/snapshots/whitequark/and_or_masgn.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(3,19))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(3,19))
+ ├── flags: ∅
└── body: (length: 2)
├── @ AndNode (location: (1,0)-(1,19))
+ │ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -17,15 +20,20 @@
│ │ └── block: ∅
│ ├── right:
│ │ @ ParenthesesNode (location: (1,7)-(1,19))
+ │ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (1,8)-(1,18))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ MultiWriteNode (location: (1,8)-(1,18))
+ │ │ │ ├── flags: newline
│ │ │ ├── lefts: (length: 2)
│ │ │ │ ├── @ LocalVariableTargetNode (location: (1,8)-(1,9))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── name: :a
│ │ │ │ │ └── depth: 0
│ │ │ │ └── @ LocalVariableTargetNode (location: (1,11)-(1,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :b
│ │ │ │ └── depth: 0
│ │ │ ├── rest: ∅
@@ -48,6 +56,7 @@
│ │ └── closing_loc: (1,18)-(1,19) = ")"
│ └── operator_loc: (1,4)-(1,6) = "&&"
└── @ OrNode (location: (3,0)-(3,19))
+ ├── flags: newline
├── left:
│ @ CallNode (location: (3,0)-(3,3))
│ ├── flags: variable_call, ignore_visibility
@@ -61,15 +70,20 @@
│ └── block: ∅
├── right:
│ @ ParenthesesNode (location: (3,7)-(3,19))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (3,8)-(3,18))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ MultiWriteNode (location: (3,8)-(3,18))
+ │ │ ├── flags: newline
│ │ ├── lefts: (length: 2)
│ │ │ ├── @ LocalVariableTargetNode (location: (3,8)-(3,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableTargetNode (location: (3,11)-(3,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ └── depth: 0
│ │ ├── rest: ∅
diff --git a/test/prism/snapshots/whitequark/anonymous_blockarg.txt b/test/prism/snapshots/whitequark/anonymous_blockarg.txt
index 92cf1504a9..7ae9500bb7 100644
--- a/test/prism/snapshots/whitequark/anonymous_blockarg.txt
+++ b/test/prism/snapshots/whitequark/anonymous_blockarg.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 @@
│ └── operator_loc: (1,8)-(1,9) = "&"
├── body:
│ @ StatementsNode (location: (1,12)-(1,17))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,12)-(1,17))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
@@ -35,6 +40,7 @@
│ ├── closing_loc: (1,17)-(1,18) = ")"
│ └── block:
│ @ BlockArgumentNode (location: (1,16)-(1,17))
+ │ ├── flags: ∅
│ ├── expression: ∅
│ └── operator_loc: (1,16)-(1,17) = "&"
├── locals: []
diff --git a/test/prism/snapshots/whitequark/arg.txt b/test/prism/snapshots/whitequark/arg.txt
index 38fdb190f3..62f2a841e9 100644
--- a/test/prism/snapshots/whitequark/arg.txt
+++ b/test/prism/snapshots/whitequark/arg.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(3,20))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,20))
+ ├── flags: ∅
└── body: (length: 2)
├── @ DefNode (location: (1,0)-(1,15))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (1,4)-(1,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,6)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,6)-(1,9))
│ │ │ ├── flags: ∅
@@ -28,11 +32,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (1,12)-(1,15) = "end"
└── @ DefNode (location: (3,0)-(3,20))
+ ├── flags: newline
├── name: :f
├── name_loc: (3,4)-(3,5) = "f"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (3,6)-(3,14))
+ │ ├── flags: ∅
│ ├── requireds: (length: 2)
│ │ ├── @ RequiredParameterNode (location: (3,6)-(3,9))
│ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/whitequark/arg_duplicate_ignored.txt b/test/prism/snapshots/whitequark/arg_duplicate_ignored.txt
index 21dc1b7417..f67c7c9358 100644
--- a/test/prism/snapshots/whitequark/arg_duplicate_ignored.txt
+++ b/test/prism/snapshots/whitequark/arg_duplicate_ignored.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(3,20))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,20))
+ ├── flags: ∅
└── body: (length: 2)
├── @ DefNode (location: (1,0)-(1,18))
+ │ ├── 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: (1,15)-(1,18) = "end"
└── @ DefNode (location: (3,0)-(3,20))
+ ├── flags: newline
├── name: :foo
├── name_loc: (3,4)-(3,7) = "foo"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (3,8)-(3,14))
+ │ ├── flags: ∅
│ ├── requireds: (length: 2)
│ │ ├── @ RequiredParameterNode (location: (3,8)-(3,10))
│ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/whitequark/arg_label.txt b/test/prism/snapshots/whitequark/arg_label.txt
index b72ea59a5d..97c1b45671 100644
--- a/test/prism/snapshots/whitequark/arg_label.txt
+++ b/test/prism/snapshots/whitequark/arg_label.txt
@@ -1,18 +1,22 @@
@ ProgramNode (location: (1,0)-(6,12))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(6,12))
+ ├── flags: ∅
└── body: (length: 3)
├── @ DefNode (location: (1,0)-(2,8))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (1,4)-(1,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (2,1)-(2,4))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (2,1)-(2,4))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
@@ -23,7 +27,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ SymbolNode (location: (2,2)-(2,4))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (2,2)-(2,3) = ":"
│ │ │ ├── value_loc: (2,3)-(2,4) = "b"
│ │ │ ├── closing_loc: ∅
@@ -38,15 +42,17 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (2,5)-(2,8) = "end"
├── @ DefNode (location: (4,0)-(4,17))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (4,4)-(4,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (4,10)-(4,13))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (4,10)-(4,13))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
@@ -57,7 +63,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ SymbolNode (location: (4,11)-(4,13))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (4,11)-(4,12) = ":"
│ │ │ ├── value_loc: (4,12)-(4,13) = "b"
│ │ │ ├── closing_loc: ∅
@@ -72,7 +78,7 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (4,14)-(4,17) = "end"
└── @ CallNode (location: (6,0)-(6,12))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :f
@@ -82,18 +88,21 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (6,2)-(6,12))
+ ├── flags: ∅
├── locals: []
├── parameters:
│ @ BlockParametersNode (location: (6,4)-(6,6))
+ │ ├── flags: ∅
│ ├── parameters: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (6,4)-(6,5) = "|"
│ └── closing_loc: (6,5)-(6,6) = "|"
├── body:
│ @ StatementsNode (location: (6,7)-(6,10))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (6,7)-(6,10))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -104,7 +113,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (6,8)-(6,10))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (6,8)-(6,9) = ":"
│ │ ├── value_loc: (6,9)-(6,10) = "b"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/arg_scope.txt b/test/prism/snapshots/whitequark/arg_scope.txt
index c04356b8ee..7838aad5fd 100644
--- a/test/prism/snapshots/whitequark/arg_scope.txt
+++ b/test/prism/snapshots/whitequark/arg_scope.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: :lambda
@@ -14,9 +16,11 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,6)-(1,13))
+ ├── flags: ∅
├── locals: [:a]
├── parameters:
│ @ BlockParametersNode (location: (1,7)-(1,11))
+ │ ├── flags: ∅
│ ├── parameters: ∅
│ ├── locals: (length: 1)
│ │ └── @ BlockLocalVariableNode (location: (1,9)-(1,10))
@@ -26,8 +30,10 @@
│ └── closing_loc: (1,10)-(1,11) = "|"
├── body:
│ @ StatementsNode (location: (1,11)-(1,12))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (1,11)-(1,12))
+ │ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── opening_loc: (1,6)-(1,7) = "{"
diff --git a/test/prism/snapshots/whitequark/args.txt b/test/prism/snapshots/whitequark/args.txt
index bc7ea8ad7d..76434b907d 100644
--- a/test/prism/snapshots/whitequark/args.txt
+++ b/test/prism/snapshots/whitequark/args.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(63,21))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(63,21))
+ ├── flags: ∅
└── body: (length: 31)
├── @ DefNode (location: (1,0)-(1,13))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (1,4)-(1,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,6)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -30,15 +34,19 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (1,10)-(1,13) = "end"
├── @ DefNode (location: (3,0)-(3,18))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (3,4)-(3,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (3,7)-(3,12))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (3,7)-(3,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 1)
│ │ │ │ └── @ MultiTargetNode (location: (3,8)-(3,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── lefts: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (3,9)-(3,10))
│ │ │ │ │ ├── flags: ∅
@@ -66,16 +74,20 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (3,15)-(3,18) = "end"
├── @ DefNode (location: (5,0)-(5,16))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (5,4)-(5,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (5,7)-(5,10))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (5,7)-(5,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (5,8)-(5,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (5,8)-(5,9) = "*"
│ │ │ │ └── expression: ∅
│ │ │ ├── rights: (length: 0)
@@ -96,16 +108,20 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (5,13)-(5,16) = "end"
├── @ DefNode (location: (7,0)-(7,19))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (7,4)-(7,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (7,7)-(7,13))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (7,7)-(7,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (7,8)-(7,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (7,8)-(7,9) = "*"
│ │ │ │ └── expression: ∅
│ │ │ ├── rights: (length: 1)
@@ -129,16 +145,20 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (7,16)-(7,19) = "end"
├── @ DefNode (location: (9,0)-(9,17))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (9,4)-(9,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (9,7)-(9,11))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (9,7)-(9,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (9,8)-(9,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (9,8)-(9,9) = "*"
│ │ │ │ └── expression:
│ │ │ │ @ RequiredParameterNode (location: (9,9)-(9,10))
@@ -162,16 +182,20 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (9,14)-(9,17) = "end"
├── @ DefNode (location: (11,0)-(11,20))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (11,4)-(11,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (11,7)-(11,14))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (11,7)-(11,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (11,8)-(11,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (11,8)-(11,9) = "*"
│ │ │ │ └── expression:
│ │ │ │ @ RequiredParameterNode (location: (11,9)-(11,10))
@@ -198,19 +222,23 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (11,17)-(11,20) = "end"
├── @ DefNode (location: (13,0)-(13,19))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (13,4)-(13,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (13,7)-(13,13))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (13,7)-(13,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (13,8)-(13,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (13,11)-(13,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (13,11)-(13,12) = "*"
│ │ │ │ └── expression: ∅
│ │ │ ├── rights: (length: 0)
@@ -231,19 +259,23 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (13,16)-(13,19) = "end"
├── @ DefNode (location: (15,0)-(15,22))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (15,4)-(15,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (15,7)-(15,16))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (15,7)-(15,16))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (15,8)-(15,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (15,11)-(15,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (15,11)-(15,12) = "*"
│ │ │ │ └── expression: ∅
│ │ │ ├── rights: (length: 1)
@@ -267,19 +299,23 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (15,19)-(15,22) = "end"
├── @ DefNode (location: (17,0)-(17,20))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (17,4)-(17,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (17,7)-(17,14))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (17,7)-(17,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (17,8)-(17,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (17,11)-(17,13))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (17,11)-(17,12) = "*"
│ │ │ │ └── expression:
│ │ │ │ @ RequiredParameterNode (location: (17,12)-(17,13))
@@ -303,19 +339,23 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (17,17)-(17,20) = "end"
├── @ DefNode (location: (19,0)-(19,23))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (19,4)-(19,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (19,7)-(19,17))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (19,7)-(19,17))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (19,8)-(19,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (19,11)-(19,13))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (19,11)-(19,12) = "*"
│ │ │ │ └── expression:
│ │ │ │ @ RequiredParameterNode (location: (19,12)-(19,13))
@@ -342,13 +382,16 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (19,20)-(19,23) = "end"
├── @ DefNode (location: (21,0)-(21,20))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (21,4)-(21,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (21,7)-(21,14))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (21,7)-(21,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 2)
│ │ │ │ ├── @ RequiredParameterNode (location: (21,8)-(21,9))
│ │ │ │ │ ├── flags: ∅
@@ -375,11 +418,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (21,17)-(21,20) = "end"
├── @ DefNode (location: (23,0)-(23,23))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (23,4)-(23,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (23,7)-(23,17))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -391,7 +436,7 @@
│ │ │ ├── name_loc: (23,7)-(23,11) = "foo:"
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (23,12)-(23,13))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -409,11 +454,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (23,20)-(23,23) = "end"
├── @ DefNode (location: (25,0)-(25,38))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (25,4)-(25,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (25,7)-(25,32))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -425,7 +472,7 @@
│ │ │ │ ├── name_loc: (25,7)-(25,11) = "foo:"
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (25,12)-(25,13))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ OptionalKeywordParameterNode (location: (25,15)-(25,21))
│ │ │ ├── flags: ∅
@@ -433,7 +480,7 @@
│ │ │ ├── name_loc: (25,15)-(25,19) = "bar:"
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (25,20)-(25,21))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (25,23)-(25,28))
@@ -456,11 +503,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (25,35)-(25,38) = "end"
├── @ DefNode (location: (27,0)-(27,20))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (27,4)-(27,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (27,6)-(27,15))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -487,11 +536,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (27,17)-(27,20) = "end"
├── @ DefNode (location: (29,0)-(29,16))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (29,4)-(29,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (29,6)-(29,11))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest:
@@ -518,11 +569,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (29,13)-(29,16) = "end"
├── @ DefNode (location: (31,0)-(31,17))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (31,4)-(31,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (31,6)-(31,12))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest:
@@ -549,11 +602,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (31,14)-(31,17) = "end"
├── @ DefNode (location: (33,0)-(33,20))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (33,4)-(33,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (33,6)-(33,15))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest:
@@ -583,6 +638,7 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (33,17)-(33,20) = "end"
├── @ DefNode (location: (35,0)-(35,11))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (35,4)-(35,5) = "f"
│ ├── receiver: ∅
@@ -596,11 +652,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (35,8)-(35,11) = "end"
├── @ DefNode (location: (37,0)-(37,16))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (37,4)-(37,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (37,6)-(37,11))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (37,6)-(37,7))
│ │ │ ├── flags: ∅
@@ -625,11 +683,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (37,13)-(37,16) = "end"
├── @ DefNode (location: (39,0)-(39,20))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (39,4)-(39,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (39,6)-(39,15))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (39,6)-(39,7))
│ │ │ ├── flags: ∅
@@ -659,11 +719,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (39,17)-(39,20) = "end"
├── @ DefNode (location: (41,0)-(41,23))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (41,4)-(41,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (41,6)-(41,18))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (41,6)-(41,7))
│ │ │ ├── flags: ∅
@@ -696,11 +758,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (41,20)-(41,23) = "end"
├── @ DefNode (location: (43,0)-(43,21))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (43,4)-(43,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (43,6)-(43,16))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (43,6)-(43,7))
│ │ │ ├── flags: ∅
@@ -713,7 +777,7 @@
│ │ │ ├── operator_loc: (43,10)-(43,11) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (43,11)-(43,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
@@ -734,11 +798,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (43,18)-(43,21) = "end"
├── @ DefNode (location: (45,0)-(45,25))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (45,4)-(45,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (45,6)-(45,20))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (45,6)-(45,7))
│ │ │ ├── flags: ∅
@@ -751,7 +817,7 @@
│ │ │ ├── operator_loc: (45,10)-(45,11) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (45,11)-(45,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (45,14)-(45,16))
@@ -777,11 +843,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (45,22)-(45,25) = "end"
├── @ DefNode (location: (47,0)-(47,28))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (47,4)-(47,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (47,6)-(47,23))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (47,6)-(47,7))
│ │ │ ├── flags: ∅
@@ -794,7 +862,7 @@
│ │ │ ├── operator_loc: (47,10)-(47,11) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (47,11)-(47,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (47,14)-(47,16))
@@ -823,11 +891,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (47,25)-(47,28) = "end"
├── @ DefNode (location: (49,0)-(49,24))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (49,4)-(49,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (49,6)-(49,19))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (49,6)-(49,7))
│ │ │ ├── flags: ∅
@@ -840,7 +910,7 @@
│ │ │ ├── operator_loc: (49,10)-(49,11) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (49,11)-(49,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest: ∅
│ │ ├── posts: (length: 1)
@@ -864,11 +934,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (49,21)-(49,24) = "end"
├── @ DefNode (location: (51,0)-(52,5))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (51,4)-(51,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (51,6)-(51,10))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -889,11 +961,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (52,2)-(52,5) = "end"
├── @ DefNode (location: (54,0)-(55,5))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (54,4)-(54,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (54,6)-(54,13))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -905,7 +979,7 @@
│ │ │ ├── name_loc: (54,6)-(54,10) = "foo:"
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (54,11)-(54,13))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: -1
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -918,11 +992,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (55,2)-(55,5) = "end"
├── @ DefNode (location: (57,0)-(57,18))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (57,4)-(57,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (57,6)-(57,13))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (57,6)-(57,9))
@@ -932,7 +1008,7 @@
│ │ │ ├── operator_loc: (57,7)-(57,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (57,8)-(57,9))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
@@ -953,11 +1029,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (57,15)-(57,18) = "end"
├── @ DefNode (location: (59,0)-(59,22))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (59,4)-(59,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (59,6)-(59,17))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (59,6)-(59,9))
@@ -967,7 +1045,7 @@
│ │ │ ├── operator_loc: (59,7)-(59,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (59,8)-(59,9))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (59,11)-(59,13))
@@ -993,11 +1071,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (59,19)-(59,22) = "end"
├── @ DefNode (location: (61,0)-(61,25))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (61,4)-(61,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (61,6)-(61,20))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (61,6)-(61,9))
@@ -1007,7 +1087,7 @@
│ │ │ ├── operator_loc: (61,7)-(61,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (61,8)-(61,9))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (61,11)-(61,13))
@@ -1036,11 +1116,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (61,22)-(61,25) = "end"
└── @ DefNode (location: (63,0)-(63,21))
+ ├── flags: newline
├── name: :f
├── name_loc: (63,4)-(63,5) = "f"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (63,6)-(63,16))
+ │ ├── flags: ∅
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 1)
│ │ └── @ OptionalParameterNode (location: (63,6)-(63,9))
@@ -1050,7 +1132,7 @@
│ │ ├── operator_loc: (63,7)-(63,8) = "="
│ │ └── value:
│ │ @ IntegerNode (location: (63,8)-(63,9))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── rest: ∅
│ ├── posts: (length: 1)
diff --git a/test/prism/snapshots/whitequark/args_args_assocs.txt b/test/prism/snapshots/whitequark/args_args_assocs.txt
index d257a885ce..bc9615273e 100644
--- a/test/prism/snapshots/whitequark/args_args_assocs.txt
+++ b/test/prism/snapshots/whitequark/args_args_assocs.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,24))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,24))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,19))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fun
@@ -28,22 +30,23 @@
│ │ ├── flags: symbol_keys
│ │ └── elements: (length: 1)
│ │ └── @ AssocNode (location: (1,9)-(1,18))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,9)-(1,13))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (1,9)-(1,10) = ":"
│ │ │ ├── value_loc: (1,10)-(1,13) = "foo"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (1,17)-(1,18))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (1,14)-(1,16) = "=>"
│ ├── closing_loc: (1,18)-(1,19) = ")"
│ └── block: ∅
└── @ CallNode (location: (3,0)-(3,24))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :fun
@@ -67,21 +70,23 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (3,9)-(3,18))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ SymbolNode (location: (3,9)-(3,13))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (3,9)-(3,10) = ":"
│ │ ├── value_loc: (3,10)-(3,13) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── value:
│ │ @ IntegerNode (location: (3,17)-(3,18))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (3,14)-(3,16) = "=>"
├── closing_loc: (3,24)-(3,25) = ")"
└── block:
@ BlockArgumentNode (location: (3,20)-(3,24))
+ ├── flags: ∅
├── expression:
│ @ CallNode (location: (3,21)-(3,24))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/args_args_assocs_comma.txt b/test/prism/snapshots/whitequark/args_args_assocs_comma.txt
index 2d986dd90a..cb98bdd1a0 100644
--- a/test/prism/snapshots/whitequark/args_args_assocs_comma.txt
+++ b/test/prism/snapshots/whitequark/args_args_assocs_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: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,3))
│ ├── flags: variable_call, ignore_visibility
@@ -38,16 +40,17 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,9)-(1,18))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ SymbolNode (location: (1,9)-(1,13))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (1,9)-(1,10) = ":"
│ │ ├── value_loc: (1,10)-(1,13) = "baz"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "baz"
│ ├── value:
│ │ @ IntegerNode (location: (1,17)-(1,18))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (1,14)-(1,16) = "=>"
├── closing_loc: (1,19)-(1,20) = "]"
diff --git a/test/prism/snapshots/whitequark/args_args_comma.txt b/test/prism/snapshots/whitequark/args_args_comma.txt
index 09113a72b6..1452565827 100644
--- a/test/prism/snapshots/whitequark/args_args_comma.txt
+++ b/test/prism/snapshots/whitequark/args_args_comma.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,3))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/args_args_star.txt b/test/prism/snapshots/whitequark/args_args_star.txt
index 26c9e72da3..85830e7fa2 100644
--- a/test/prism/snapshots/whitequark/args_args_star.txt
+++ b/test/prism/snapshots/whitequark/args_args_star.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,19))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,19))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,14))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fun
@@ -25,6 +27,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── @ SplatNode (location: (1,9)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (1,9)-(1,10) = "*"
│ │ └── expression:
│ │ @ CallNode (location: (1,10)-(1,13))
@@ -40,7 +43,7 @@
│ ├── closing_loc: (1,13)-(1,14) = ")"
│ └── block: ∅
└── @ CallNode (location: (3,0)-(3,19))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :fun
@@ -61,6 +64,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── @ SplatNode (location: (3,9)-(3,13))
+ │ ├── flags: ∅
│ ├── operator_loc: (3,9)-(3,10) = "*"
│ └── expression:
│ @ CallNode (location: (3,10)-(3,13))
@@ -76,6 +80,7 @@
├── closing_loc: (3,19)-(3,20) = ")"
└── block:
@ BlockArgumentNode (location: (3,15)-(3,19))
+ ├── flags: ∅
├── expression:
│ @ CallNode (location: (3,16)-(3,19))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/args_assocs_comma.txt b/test/prism/snapshots/whitequark/args_assocs_comma.txt
index 64a25bbc45..2d00798a37 100644
--- a/test/prism/snapshots/whitequark/args_assocs_comma.txt
+++ b/test/prism/snapshots/whitequark/args_assocs_comma.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,3))
│ ├── flags: variable_call, ignore_visibility
@@ -28,16 +30,17 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,4)-(1,13))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ 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) = "baz"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "baz"
│ ├── value:
│ │ @ IntegerNode (location: (1,12)-(1,13))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (1,9)-(1,11) = "=>"
├── closing_loc: (1,14)-(1,15) = "]"
diff --git a/test/prism/snapshots/whitequark/args_block_pass.txt b/test/prism/snapshots/whitequark/args_block_pass.txt
index 99ffa81934..495d8efd4f 100644
--- a/test/prism/snapshots/whitequark/args_block_pass.txt
+++ b/test/prism/snapshots/whitequark/args_block_pass.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: :fun
@@ -14,6 +16,7 @@
├── closing_loc: (1,8)-(1,9) = ")"
└── block:
@ BlockArgumentNode (location: (1,4)-(1,8))
+ ├── flags: ∅
├── expression:
│ @ CallNode (location: (1,5)-(1,8))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/args_cmd.txt b/test/prism/snapshots/whitequark/args_cmd.txt
index 0089e56157..1cfdf1bb10 100644
--- a/test/prism/snapshots/whitequark/args_cmd.txt
+++ b/test/prism/snapshots/whitequark/args_cmd.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: :fun
diff --git a/test/prism/snapshots/whitequark/args_star.txt b/test/prism/snapshots/whitequark/args_star.txt
index c19577f106..fc04bacc76 100644
--- a/test/prism/snapshots/whitequark/args_star.txt
+++ b/test/prism/snapshots/whitequark/args_star.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,14))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,9))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fun
@@ -15,6 +17,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SplatNode (location: (1,4)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (1,4)-(1,5) = "*"
│ │ └── expression:
│ │ @ CallNode (location: (1,5)-(1,8))
@@ -30,7 +33,7 @@
│ ├── closing_loc: (1,8)-(1,9) = ")"
│ └── block: ∅
└── @ CallNode (location: (3,0)-(3,14))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :fun
@@ -41,6 +44,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ SplatNode (location: (3,4)-(3,8))
+ │ ├── flags: ∅
│ ├── operator_loc: (3,4)-(3,5) = "*"
│ └── expression:
│ @ CallNode (location: (3,5)-(3,8))
@@ -56,6 +60,7 @@
├── closing_loc: (3,14)-(3,15) = ")"
└── block:
@ BlockArgumentNode (location: (3,10)-(3,14))
+ ├── flags: ∅
├── expression:
│ @ CallNode (location: (3,11)-(3,14))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/array_assocs.txt b/test/prism/snapshots/whitequark/array_assocs.txt
index 3747e3f7d8..30a41a8c51 100644
--- a/test/prism/snapshots/whitequark/array_assocs.txt
+++ b/test/prism/snapshots/whitequark/array_assocs.txt
@@ -1,43 +1,47 @@
@ ProgramNode (location: (1,0)-(3,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,13))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(1,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 1)
│ │ └── @ KeywordHashNode (location: (1,2)-(1,8))
│ │ ├── flags: ∅
│ │ └── 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) = "=>"
│ ├── opening_loc: (1,0)-(1,1) = "["
│ └── closing_loc: (1,9)-(1,10) = "]"
└── @ ArrayNode (location: (3,0)-(3,13))
- ├── flags: ∅
+ ├── flags: newline
├── elements: (length: 2)
│ ├── @ IntegerNode (location: (3,2)-(3,3))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ KeywordHashNode (location: (3,5)-(3,11))
│ ├── flags: ∅
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (3,5)-(3,11))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ IntegerNode (location: (3,5)-(3,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── value:
│ │ @ IntegerNode (location: (3,10)-(3,11))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ └── operator_loc: (3,7)-(3,9) = "=>"
├── opening_loc: (3,0)-(3,1) = "["
diff --git a/test/prism/snapshots/whitequark/array_plain.txt b/test/prism/snapshots/whitequark/array_plain.txt
index b183a7ac6b..3e0966fe8f 100644
--- a/test/prism/snapshots/whitequark/array_plain.txt
+++ b/test/prism/snapshots/whitequark/array_plain.txt
@@ -1,16 +1,18 @@
@ ProgramNode (location: (1,0)-(1,6))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,6))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 2)
│ ├── @ 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
├── opening_loc: (1,0)-(1,1) = "["
└── closing_loc: (1,5)-(1,6) = "]"
diff --git a/test/prism/snapshots/whitequark/array_splat.txt b/test/prism/snapshots/whitequark/array_splat.txt
index f76563e9f4..bfd74572ca 100644
--- a/test/prism/snapshots/whitequark/array_splat.txt
+++ b/test/prism/snapshots/whitequark/array_splat.txt
@@ -1,12 +1,15 @@
@ ProgramNode (location: (1,0)-(5,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,9))
+ ├── flags: ∅
└── body: (length: 3)
├── @ ArrayNode (location: (1,0)-(1,6))
- │ ├── flags: contains_splat
+ │ ├── flags: newline, contains_splat
│ ├── elements: (length: 1)
│ │ └── @ SplatNode (location: (1,1)-(1,5))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (1,1)-(1,2) = "*"
│ │ └── expression:
│ │ @ CallNode (location: (1,2)-(1,5))
@@ -22,12 +25,13 @@
│ ├── opening_loc: (1,0)-(1,1) = "["
│ └── closing_loc: (1,5)-(1,6) = "]"
├── @ ArrayNode (location: (3,0)-(3,12))
- │ ├── flags: contains_splat
+ │ ├── flags: newline, contains_splat
│ ├── elements: (length: 3)
│ │ ├── @ IntegerNode (location: (3,1)-(3,2))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── @ SplatNode (location: (3,4)-(3,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (3,4)-(3,5) = "*"
│ │ │ └── expression:
│ │ │ @ CallNode (location: (3,5)-(3,8))
@@ -41,17 +45,18 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── @ IntegerNode (location: (3,10)-(3,11))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── opening_loc: (3,0)-(3,1) = "["
│ └── closing_loc: (3,11)-(3,12) = "]"
└── @ ArrayNode (location: (5,0)-(5,9))
- ├── flags: contains_splat
+ ├── flags: newline, contains_splat
├── elements: (length: 2)
│ ├── @ IntegerNode (location: (5,1)-(5,2))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ SplatNode (location: (5,4)-(5,8))
+ │ ├── flags: ∅
│ ├── operator_loc: (5,4)-(5,5) = "*"
│ └── expression:
│ @ CallNode (location: (5,5)-(5,8))
diff --git a/test/prism/snapshots/whitequark/array_symbols.txt b/test/prism/snapshots/whitequark/array_symbols.txt
index 0662f01af1..75e342637c 100644
--- a/test/prism/snapshots/whitequark/array_symbols.txt
+++ b/test/prism/snapshots/whitequark/array_symbols.txt
@@ -1,19 +1,21 @@
@ 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, static_literal
├── elements: (length: 2)
│ ├── @ SymbolNode (location: (1,3)-(1,6))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,6) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ └── @ SymbolNode (location: (1,7)-(1,10))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: ∅
│ ├── value_loc: (1,7)-(1,10) = "bar"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/array_symbols_empty.txt b/test/prism/snapshots/whitequark/array_symbols_empty.txt
index 1068ba6d0e..b2d7eda20f 100644
--- a/test/prism/snapshots/whitequark/array_symbols_empty.txt
+++ b/test/prism/snapshots/whitequark/array_symbols_empty.txt
@@ -1,15 +1,17 @@
@ ProgramNode (location: (1,0)-(3,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,4))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(1,4))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 0)
│ ├── opening_loc: (1,0)-(1,3) = "%I("
│ └── closing_loc: (1,3)-(1,4) = ")"
└── @ ArrayNode (location: (3,0)-(3,4))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 0)
├── opening_loc: (3,0)-(3,3) = "%i["
└── closing_loc: (3,3)-(3,4) = "]"
diff --git a/test/prism/snapshots/whitequark/array_symbols_interp.txt b/test/prism/snapshots/whitequark/array_symbols_interp.txt
index 2437486b43..f250ef041f 100644
--- a/test/prism/snapshots/whitequark/array_symbols_interp.txt
+++ b/test/prism/snapshots/whitequark/array_symbols_interp.txt
@@ -1,24 +1,29 @@
@ ProgramNode (location: (1,0)-(3,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,13))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(1,14))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (1,3)-(1,6))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,3)-(1,6) = "foo"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo"
│ │ └── @ InterpolatedSymbolNode (location: (1,7)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── parts: (length: 1)
│ │ │ └── @ EmbeddedStatementsNode (location: (1,7)-(1,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,7)-(1,9) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (1,9)-(1,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (1,9)-(1,12))
│ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -35,21 +40,24 @@
│ ├── opening_loc: (1,0)-(1,3) = "%I["
│ └── closing_loc: (1,13)-(1,14) = "]"
└── @ ArrayNode (location: (3,0)-(3,13))
- ├── flags: ∅
+ ├── flags: newline
├── elements: (length: 1)
│ └── @ InterpolatedSymbolNode (location: (3,3)-(3,12))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (3,3)-(3,6))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,3)-(3,6) = "foo"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo"
│ │ └── @ EmbeddedStatementsNode (location: (3,6)-(3,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (3,6)-(3,8) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (3,8)-(3,11))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (3,8)-(3,11))
│ │ │ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/array_words.txt b/test/prism/snapshots/whitequark/array_words.txt
index 84121de355..c6594b3218 100644
--- a/test/prism/snapshots/whitequark/array_words.txt
+++ b/test/prism/snapshots/whitequark/array_words.txt
@@ -1,10 +1,12 @@
@ 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)
│ ├── @ StringNode (location: (1,3)-(1,6))
│ │ ├── flags: ∅
diff --git a/test/prism/snapshots/whitequark/array_words_empty.txt b/test/prism/snapshots/whitequark/array_words_empty.txt
index e4dba94cdf..5bab3f49ef 100644
--- a/test/prism/snapshots/whitequark/array_words_empty.txt
+++ b/test/prism/snapshots/whitequark/array_words_empty.txt
@@ -1,15 +1,17 @@
@ ProgramNode (location: (1,0)-(3,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,4))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(1,4))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 0)
│ ├── opening_loc: (1,0)-(1,3) = "%W("
│ └── closing_loc: (1,3)-(1,4) = ")"
└── @ ArrayNode (location: (3,0)-(3,4))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── elements: (length: 0)
├── opening_loc: (3,0)-(3,3) = "%w["
└── closing_loc: (3,3)-(3,4) = "]"
diff --git a/test/prism/snapshots/whitequark/array_words_interp.txt b/test/prism/snapshots/whitequark/array_words_interp.txt
index c3ae9a0cf8..dd104a1921 100644
--- a/test/prism/snapshots/whitequark/array_words_interp.txt
+++ b/test/prism/snapshots/whitequark/array_words_interp.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,22))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,22))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(1,14))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ StringNode (location: (1,3)-(1,6))
│ │ │ ├── flags: ∅
@@ -17,9 +19,11 @@
│ │ ├── opening_loc: ∅
│ │ ├── parts: (length: 1)
│ │ │ └── @ EmbeddedStatementsNode (location: (1,7)-(1,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,7)-(1,9) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (1,9)-(1,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (1,9)-(1,12))
│ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -36,7 +40,7 @@
│ ├── opening_loc: (1,0)-(1,3) = "%W["
│ └── closing_loc: (1,13)-(1,14) = "]"
└── @ ArrayNode (location: (3,0)-(3,22))
- ├── flags: ∅
+ ├── flags: newline
├── elements: (length: 2)
│ ├── @ StringNode (location: (3,3)-(3,6))
│ │ ├── flags: ∅
@@ -49,9 +53,11 @@
│ ├── opening_loc: ∅
│ ├── parts: (length: 3)
│ │ ├── @ 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
@@ -65,15 +71,17 @@
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (3,12)-(3,13) = "}"
│ │ ├── @ StringNode (location: (3,13)-(3,16))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,13)-(3,16) = "foo"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo"
│ │ └── @ EmbeddedVariableNode (location: (3,16)-(3,21))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (3,16)-(3,17) = "#"
│ │ └── variable:
│ │ @ InstanceVariableReadNode (location: (3,17)-(3,21))
+ │ │ ├── flags: ∅
│ │ └── name: :@baz
│ └── closing_loc: ∅
├── opening_loc: (3,0)-(3,3) = "%W["
diff --git a/test/prism/snapshots/whitequark/asgn_cmd.txt b/test/prism/snapshots/whitequark/asgn_cmd.txt
index 4a3c36680b..c212864ded 100644
--- a/test/prism/snapshots/whitequark/asgn_cmd.txt
+++ b/test/prism/snapshots/whitequark/asgn_cmd.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(3,11))
+├── flags: ∅
├── locals: [:foo, :bar]
└── statements:
@ StatementsNode (location: (1,0)-(3,11))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LocalVariableWriteNode (location: (1,0)-(1,17))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (1,0)-(1,3) = "foo"
│ ├── value:
│ │ @ LocalVariableWriteNode (location: (1,6)-(1,17))
+ │ │ ├── flags: ∅
│ │ ├── name: :bar
│ │ ├── depth: 0
│ │ ├── name_loc: (1,6)-(1,9) = "bar"
@@ -25,6 +29,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ LocalVariableReadNode (location: (1,14)-(1,17))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :foo
│ │ │ │ └── depth: 0
│ │ │ ├── closing_loc: ∅
@@ -32,6 +37,7 @@
│ │ └── operator_loc: (1,10)-(1,11) = "="
│ └── operator_loc: (1,4)-(1,5) = "="
└── @ LocalVariableWriteNode (location: (3,0)-(3,11))
+ ├── flags: newline
├── name: :foo
├── depth: 0
├── name_loc: (3,0)-(3,3) = "foo"
@@ -48,6 +54,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (3,8)-(3,11))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/asgn_mrhs.txt b/test/prism/snapshots/whitequark/asgn_mrhs.txt
index 41d5bdc5bf..972eaf7fa5 100644
--- a/test/prism/snapshots/whitequark/asgn_mrhs.txt
+++ b/test/prism/snapshots/whitequark/asgn_mrhs.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(5,15))
+├── flags: ∅
├── locals: [:foo]
└── statements:
@ StatementsNode (location: (1,0)-(5,15))
+ ├── flags: ∅
└── body: (length: 3)
├── @ LocalVariableWriteNode (location: (1,0)-(1,10))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (1,0)-(1,3) = "foo"
@@ -12,6 +15,7 @@
│ │ ├── flags: contains_splat
│ │ ├── elements: (length: 1)
│ │ │ └── @ SplatNode (location: (1,6)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (1,6)-(1,7) = "*"
│ │ │ └── expression:
│ │ │ @ CallNode (location: (1,7)-(1,10))
@@ -28,6 +32,7 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (1,4)-(1,5) = "="
├── @ LocalVariableWriteNode (location: (3,0)-(3,12))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (3,0)-(3,3) = "foo"
@@ -46,12 +51,13 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── @ IntegerNode (location: (3,11)-(3,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── operator_loc: (3,4)-(3,5) = "="
└── @ LocalVariableWriteNode (location: (5,0)-(5,15))
+ ├── flags: newline
├── name: :foo
├── depth: 0
├── name_loc: (5,0)-(5,3) = "foo"
@@ -70,6 +76,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── @ SplatNode (location: (5,11)-(5,15))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (5,11)-(5,12) = "*"
│ │ └── expression:
│ │ @ CallNode (location: (5,12)-(5,15))
diff --git a/test/prism/snapshots/whitequark/back_ref.txt b/test/prism/snapshots/whitequark/back_ref.txt
index ea6b76faf7..240285bd8d 100644
--- a/test/prism/snapshots/whitequark/back_ref.txt
+++ b/test/prism/snapshots/whitequark/back_ref.txt
@@ -1,7 +1,10 @@
@ ProgramNode (location: (1,0)-(1,2))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,2))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BackReferenceReadNode (location: (1,0)-(1,2))
+ ├── flags: newline
└── name: :$+
diff --git a/test/prism/snapshots/whitequark/bang.txt b/test/prism/snapshots/whitequark/bang.txt
index 997a8718c5..165a5d3149 100644
--- a/test/prism/snapshots/whitequark/bang.txt
+++ b/test/prism/snapshots/whitequark/bang.txt
@@ -1,10 +1,12 @@
@ 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:
│ @ CallNode (location: (1,1)-(1,4))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/bang_cmd.txt b/test/prism/snapshots/whitequark/bang_cmd.txt
index e487da5e57..d4487ad6ca 100644
--- a/test/prism/snapshots/whitequark/bang_cmd.txt
+++ b/test/prism/snapshots/whitequark/bang_cmd.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,1)-(1,6))
│ ├── flags: ignore_visibility
diff --git a/test/prism/snapshots/whitequark/begin_cmdarg.txt b/test/prism/snapshots/whitequark/begin_cmdarg.txt
index b0c03c1754..8287191fab 100644
--- a/test/prism/snapshots/whitequark/begin_cmdarg.txt
+++ b/test/prism/snapshots/whitequark/begin_cmdarg.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,28))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,28))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,28))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :p
@@ -15,15 +17,17 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ BeginNode (location: (1,2)-(1,28))
+ │ ├── flags: ∅
│ ├── begin_keyword_loc: (1,2)-(1,7) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (1,8)-(1,24))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,8)-(1,24))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (1,8)-(1,9))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: (1,9)-(1,10) = "."
│ │ ├── name: :times
@@ -33,13 +37,15 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (1,16)-(1,24))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (1,19)-(1,20))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,19)-(1,20))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 1
│ │ ├── opening_loc: (1,16)-(1,18) = "do"
│ │ └── closing_loc: (1,21)-(1,24) = "end"
diff --git a/test/prism/snapshots/whitequark/beginless_erange_after_newline.txt b/test/prism/snapshots/whitequark/beginless_erange_after_newline.txt
index 69db24a127..fe05701982 100644
--- a/test/prism/snapshots/whitequark/beginless_erange_after_newline.txt
+++ b/test/prism/snapshots/whitequark/beginless_erange_after_newline.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,6))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,6))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,3))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
@@ -14,10 +16,10 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ RangeNode (location: (2,0)-(2,6))
- ├── flags: exclude_end
+ ├── flags: newline, static_literal, exclude_end
├── left: ∅
├── right:
│ @ IntegerNode (location: (2,3)-(2,6))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 100
└── operator_loc: (2,0)-(2,3) = "..."
diff --git a/test/prism/snapshots/whitequark/beginless_irange_after_newline.txt b/test/prism/snapshots/whitequark/beginless_irange_after_newline.txt
index cbc11c83c1..ae5c09808a 100644
--- a/test/prism/snapshots/whitequark/beginless_irange_after_newline.txt
+++ b/test/prism/snapshots/whitequark/beginless_irange_after_newline.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,5))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,3))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
@@ -14,10 +16,10 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ RangeNode (location: (2,0)-(2,5))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── left: ∅
├── right:
│ @ IntegerNode (location: (2,2)-(2,5))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 100
└── operator_loc: (2,0)-(2,2) = ".."
diff --git a/test/prism/snapshots/whitequark/beginless_range.txt b/test/prism/snapshots/whitequark/beginless_range.txt
index 59e6f135ad..897429e33b 100644
--- a/test/prism/snapshots/whitequark/beginless_range.txt
+++ b/test/prism/snapshots/whitequark/beginless_range.txt
@@ -1,21 +1,23 @@
@ ProgramNode (location: (1,0)-(3,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,5))
+ ├── flags: ∅
└── body: (length: 2)
├── @ RangeNode (location: (1,0)-(1,6))
- │ ├── flags: exclude_end
+ │ ├── flags: newline, static_literal, exclude_end
│ ├── left: ∅
│ ├── right:
│ │ @ IntegerNode (location: (1,3)-(1,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 100
│ └── operator_loc: (1,0)-(1,3) = "..."
└── @ RangeNode (location: (3,0)-(3,5))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── left: ∅
├── right:
│ @ IntegerNode (location: (3,2)-(3,5))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 100
└── operator_loc: (3,0)-(3,2) = ".."
diff --git a/test/prism/snapshots/whitequark/blockarg.txt b/test/prism/snapshots/whitequark/blockarg.txt
index 70b054e073..d57d61b603 100644
--- a/test/prism/snapshots/whitequark/blockarg.txt
+++ b/test/prism/snapshots/whitequark/blockarg.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,18))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,18))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,18))
+ ├── 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/whitequark/blockargs.txt b/test/prism/snapshots/whitequark/blockargs.txt
index 149c3765c9..53ef39ac0f 100644
--- a/test/prism/snapshots/whitequark/blockargs.txt
+++ b/test/prism/snapshots/whitequark/blockargs.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(71,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(71,7))
+ ├── flags: ∅
└── body: (length: 35)
├── @ CallNode (location: (1,0)-(1,5))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -14,13 +16,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,1)-(1,5))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (1,1)-(1,2) = "{"
│ └── closing_loc: (1,4)-(1,5) = "}"
├── @ CallNode (location: (3,0)-(3,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -30,9 +33,11 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (3,1)-(3,8))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters:
│ │ @ BlockParametersNode (location: (3,3)-(3,6))
+ │ │ ├── flags: ∅
│ │ ├── parameters: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (3,3)-(3,4) = "|"
@@ -41,7 +46,7 @@
│ ├── opening_loc: (3,1)-(3,2) = "{"
│ └── closing_loc: (3,7)-(3,8) = "}"
├── @ CallNode (location: (5,0)-(5,9))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -51,11 +56,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,1)-(5,9))
+ │ ├── flags: ∅
│ ├── locals: [:b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (5,3)-(5,7))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (5,4)-(5,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
@@ -75,7 +83,7 @@
│ ├── opening_loc: (5,1)-(5,2) = "{"
│ └── closing_loc: (5,8)-(5,9) = "}"
├── @ CallNode (location: (7,0)-(7,16))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -85,11 +93,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (7,1)-(7,16))
+ │ ├── flags: ∅
│ ├── locals: [:baz, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (7,3)-(7,14))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (7,4)-(7,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
@@ -114,7 +125,7 @@
│ ├── opening_loc: (7,1)-(7,2) = "{"
│ └── closing_loc: (7,15)-(7,16) = "}"
├── @ CallNode (location: (9,0)-(9,12))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -124,11 +135,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (9,1)-(9,12))
+ │ ├── flags: ∅
│ ├── locals: [:b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (9,3)-(9,10))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (9,4)-(9,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest:
@@ -153,7 +167,7 @@
│ ├── opening_loc: (9,1)-(9,2) = "{"
│ └── closing_loc: (9,11)-(9,12) = "}"
├── @ CallNode (location: (11,0)-(11,16))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -163,11 +177,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (11,1)-(11,16))
+ │ ├── flags: ∅
│ ├── locals: [:r, :p, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (11,3)-(11,14))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (11,4)-(11,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest:
@@ -195,7 +212,7 @@
│ ├── opening_loc: (11,1)-(11,2) = "{"
│ └── closing_loc: (11,15)-(11,16) = "}"
├── @ CallNode (location: (13,0)-(13,13))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -205,11 +222,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (13,1)-(13,13))
+ │ ├── flags: ∅
│ ├── locals: [:s, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (13,3)-(13,11))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (13,4)-(13,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest:
@@ -234,7 +254,7 @@
│ ├── opening_loc: (13,1)-(13,2) = "{"
│ └── closing_loc: (13,12)-(13,13) = "}"
├── @ CallNode (location: (15,0)-(15,9))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -244,11 +264,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (15,1)-(15,9))
+ │ ├── flags: ∅
│ ├── locals: [:s]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (15,3)-(15,7))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (15,4)-(15,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest:
@@ -268,7 +291,7 @@
│ ├── opening_loc: (15,1)-(15,2) = "{"
│ └── closing_loc: (15,8)-(15,9) = "}"
├── @ CallNode (location: (17,0)-(17,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -278,11 +301,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (17,1)-(17,8))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters:
│ │ @ BlockParametersNode (location: (17,3)-(17,6))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (17,4)-(17,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest:
@@ -302,7 +328,7 @@
│ ├── opening_loc: (17,1)-(17,2) = "{"
│ └── closing_loc: (17,7)-(17,8) = "}"
├── @ CallNode (location: (19,0)-(21,3))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -312,9 +338,11 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (19,1)-(21,3))
+ │ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (19,3)-(21,1))
+ │ │ ├── flags: ∅
│ │ ├── parameters: ∅
│ │ ├── locals: (length: 1)
│ │ │ └── @ BlockLocalVariableNode (location: (20,0)-(20,1))
@@ -326,7 +354,7 @@
│ ├── opening_loc: (19,1)-(19,2) = "{"
│ └── closing_loc: (21,2)-(21,3) = "}"
├── @ CallNode (location: (23,0)-(23,9))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -336,9 +364,11 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (23,1)-(23,9))
+ │ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (23,3)-(23,7))
+ │ │ ├── flags: ∅
│ │ ├── parameters: ∅
│ │ ├── locals: (length: 1)
│ │ │ └── @ BlockLocalVariableNode (location: (23,5)-(23,6))
@@ -350,7 +380,7 @@
│ ├── opening_loc: (23,1)-(23,2) = "{"
│ └── closing_loc: (23,8)-(23,9) = "}"
├── @ CallNode (location: (25,0)-(25,12))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -360,11 +390,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (25,1)-(25,12))
+ │ ├── flags: ∅
│ ├── locals: [:a, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (25,3)-(25,10))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (25,4)-(25,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (25,4)-(25,5))
│ │ │ │ ├── flags: ∅
@@ -387,7 +420,7 @@
│ ├── opening_loc: (25,1)-(25,2) = "{"
│ └── closing_loc: (25,11)-(25,12) = "}"
├── @ CallNode (location: (27,0)-(27,15))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -397,11 +430,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (27,1)-(27,15))
+ │ ├── flags: ∅
│ ├── locals: [:a, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (27,3)-(27,13))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (27,4)-(27,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (27,4)-(27,5))
│ │ │ │ ├── flags: ∅
@@ -429,7 +465,7 @@
│ ├── opening_loc: (27,1)-(27,2) = "{"
│ └── closing_loc: (27,14)-(27,15) = "}"
├── @ CallNode (location: (29,0)-(29,19))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -439,11 +475,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (29,1)-(29,19))
+ │ ├── flags: ∅
│ ├── locals: [:a, :r, :p, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (29,3)-(29,17))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (29,4)-(29,16))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (29,4)-(29,5))
│ │ │ │ ├── flags: ∅
@@ -474,7 +513,7 @@
│ ├── opening_loc: (29,1)-(29,2) = "{"
│ └── closing_loc: (29,18)-(29,19) = "}"
├── @ CallNode (location: (31,0)-(31,16))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -484,11 +523,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (31,1)-(31,16))
+ │ ├── flags: ∅
│ ├── locals: [:a, :s, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (31,3)-(31,14))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (31,4)-(31,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (31,4)-(31,5))
│ │ │ │ ├── flags: ∅
@@ -516,7 +558,7 @@
│ ├── opening_loc: (31,1)-(31,2) = "{"
│ └── closing_loc: (31,15)-(31,16) = "}"
├── @ CallNode (location: (33,0)-(33,12))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -526,11 +568,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (33,1)-(33,12))
+ │ ├── flags: ∅
│ ├── locals: [:a, :s]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (33,3)-(33,10))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (33,4)-(33,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (33,4)-(33,5))
│ │ │ │ ├── flags: ∅
@@ -553,7 +598,7 @@
│ ├── opening_loc: (33,1)-(33,2) = "{"
│ └── closing_loc: (33,11)-(33,12) = "}"
├── @ CallNode (location: (35,0)-(35,11))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -563,11 +608,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (35,1)-(35,11))
+ │ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (35,3)-(35,9))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (35,4)-(35,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (35,4)-(35,5))
│ │ │ │ ├── flags: ∅
@@ -590,7 +638,7 @@
│ ├── opening_loc: (35,1)-(35,2) = "{"
│ └── closing_loc: (35,10)-(35,11) = "}"
├── @ CallNode (location: (37,0)-(37,12))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -600,11 +648,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (37,1)-(37,12))
+ │ ├── flags: ∅
│ ├── locals: [:a, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (37,3)-(37,10))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (37,4)-(37,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 2)
│ │ │ │ ├── @ RequiredParameterNode (location: (37,4)-(37,5))
│ │ │ │ │ ├── flags: ∅
@@ -615,6 +666,7 @@
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ ImplicitRestNode (location: (37,8)-(37,9))
+ │ │ │ │ └── flags: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
@@ -626,7 +678,7 @@
│ ├── opening_loc: (37,1)-(37,2) = "{"
│ └── closing_loc: (37,11)-(37,12) = "}"
├── @ CallNode (location: (39,0)-(39,11))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -636,11 +688,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (39,1)-(39,11))
+ │ ├── flags: ∅
│ ├── locals: [:a, :c]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (39,3)-(39,9))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (39,4)-(39,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 2)
│ │ │ │ ├── @ RequiredParameterNode (location: (39,4)-(39,5))
│ │ │ │ │ ├── flags: ∅
@@ -661,7 +716,7 @@
│ ├── opening_loc: (39,1)-(39,2) = "{"
│ └── closing_loc: (39,10)-(39,11) = "}"
├── @ CallNode (location: (41,0)-(41,17))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -671,11 +726,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (41,1)-(41,17))
+ │ ├── flags: ∅
│ ├── locals: [:a, :o, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (41,3)-(41,15))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (41,4)-(41,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (41,4)-(41,5))
│ │ │ │ ├── flags: ∅
@@ -688,7 +746,7 @@
│ │ │ │ ├── operator_loc: (41,8)-(41,9) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (41,9)-(41,10))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
@@ -707,7 +765,7 @@
│ ├── opening_loc: (41,1)-(41,2) = "{"
│ └── closing_loc: (41,16)-(41,17) = "}"
├── @ CallNode (location: (43,0)-(43,24))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -717,11 +775,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (43,1)-(43,24))
+ │ ├── flags: ∅
│ ├── locals: [:a, :o, :r, :p, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (43,3)-(43,22))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (43,4)-(43,21))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (43,4)-(43,5))
│ │ │ │ ├── flags: ∅
@@ -734,7 +795,7 @@
│ │ │ │ ├── operator_loc: (43,8)-(43,9) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (43,9)-(43,10))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (43,12)-(43,14))
@@ -761,7 +822,7 @@
│ ├── opening_loc: (43,1)-(43,2) = "{"
│ └── closing_loc: (43,23)-(43,24) = "}"
├── @ CallNode (location: (45,0)-(45,27))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -771,11 +832,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (45,1)-(45,27))
+ │ ├── flags: ∅
│ ├── locals: [:a, :o, :o1, :r, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (45,3)-(45,25))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (45,4)-(45,24))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (45,4)-(45,5))
│ │ │ │ ├── flags: ∅
@@ -788,7 +852,7 @@
│ │ │ │ │ ├── operator_loc: (45,8)-(45,9) = "="
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (45,9)-(45,10))
- │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ └── @ OptionalParameterNode (location: (45,12)-(45,16))
│ │ │ │ ├── flags: ∅
@@ -797,7 +861,7 @@
│ │ │ │ ├── operator_loc: (45,14)-(45,15) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (45,15)-(45,16))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (45,18)-(45,20))
@@ -821,7 +885,7 @@
│ ├── opening_loc: (45,1)-(45,2) = "{"
│ └── closing_loc: (45,26)-(45,27) = "}"
├── @ CallNode (location: (47,0)-(47,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -831,11 +895,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (47,1)-(47,20))
+ │ ├── flags: ∅
│ ├── locals: [:a, :o, :p, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (47,3)-(47,18))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (47,4)-(47,17))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (47,4)-(47,5))
│ │ │ │ ├── flags: ∅
@@ -848,7 +915,7 @@
│ │ │ │ ├── operator_loc: (47,8)-(47,9) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (47,9)-(47,10))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 1)
@@ -870,7 +937,7 @@
│ ├── opening_loc: (47,1)-(47,2) = "{"
│ └── closing_loc: (47,19)-(47,20) = "}"
├── @ CallNode (location: (49,0)-(49,9))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -880,11 +947,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (49,1)-(49,9))
+ │ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (49,3)-(49,7))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (49,4)-(49,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (49,4)-(49,5))
│ │ │ │ ├── flags: ∅
@@ -892,6 +962,7 @@
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ ImplicitRestNode (location: (49,5)-(49,6))
+ │ │ │ │ └── flags: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
@@ -903,7 +974,7 @@
│ ├── opening_loc: (49,1)-(49,2) = "{"
│ └── closing_loc: (49,8)-(49,9) = "}"
├── @ CallNode (location: (51,0)-(51,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -913,11 +984,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (51,1)-(51,8))
+ │ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (51,3)-(51,6))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (51,4)-(51,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (51,4)-(51,5))
│ │ │ │ ├── flags: ∅
@@ -935,7 +1009,7 @@
│ ├── opening_loc: (51,1)-(51,2) = "{"
│ └── closing_loc: (51,7)-(51,8) = "}"
├── @ CallNode (location: (53,0)-(53,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -945,11 +1019,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (53,1)-(53,8))
+ │ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (53,3)-(53,6))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (53,4)-(53,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (53,4)-(53,5))
│ │ │ │ ├── flags: ∅
@@ -967,7 +1044,7 @@
│ ├── opening_loc: (53,1)-(53,2) = "{"
│ └── closing_loc: (53,7)-(53,8) = "}"
├── @ CallNode (location: (55,0)-(55,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -977,11 +1054,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (55,1)-(55,8))
+ │ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (55,3)-(55,6))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (55,4)-(55,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (55,4)-(55,5))
│ │ │ │ ├── flags: ∅
@@ -999,7 +1079,7 @@
│ ├── opening_loc: (55,1)-(55,2) = "{"
│ └── closing_loc: (55,7)-(55,8) = "}"
├── @ CallNode (location: (57,0)-(57,17))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -1009,11 +1089,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (57,1)-(57,17))
+ │ ├── flags: ∅
│ ├── locals: [:foo, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (57,3)-(57,15))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (57,4)-(57,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
@@ -1025,7 +1108,7 @@
│ │ │ │ ├── name_loc: (57,4)-(57,8) = "foo:"
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (57,9)-(57,10))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
@@ -1041,7 +1124,7 @@
│ ├── opening_loc: (57,1)-(57,2) = "{"
│ └── closing_loc: (57,16)-(57,17) = "}"
├── @ CallNode (location: (59,0)-(59,32))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -1051,11 +1134,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (59,1)-(59,32))
+ │ ├── flags: ∅
│ ├── locals: [:foo, :bar, :baz, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (59,3)-(59,30))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (59,4)-(59,29))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
@@ -1067,7 +1153,7 @@
│ │ │ │ │ ├── name_loc: (59,4)-(59,8) = "foo:"
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (59,9)-(59,10))
- │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ └── @ OptionalKeywordParameterNode (location: (59,12)-(59,18))
│ │ │ │ ├── flags: ∅
@@ -1075,7 +1161,7 @@
│ │ │ │ ├── name_loc: (59,12)-(59,16) = "bar:"
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (59,17)-(59,18))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ ├── keyword_rest:
│ │ │ │ @ KeywordRestParameterNode (location: (59,20)-(59,25))
@@ -1096,7 +1182,7 @@
│ ├── opening_loc: (59,1)-(59,2) = "{"
│ └── closing_loc: (59,31)-(59,32) = "}"
├── @ CallNode (location: (61,0)-(61,11))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -1106,11 +1192,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (61,1)-(61,11))
+ │ ├── flags: ∅
│ ├── locals: [:foo]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (61,3)-(61,9))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (61,4)-(61,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
@@ -1129,7 +1218,7 @@
│ ├── opening_loc: (61,1)-(61,2) = "{"
│ └── closing_loc: (61,10)-(61,11) = "}"
├── @ CallNode (location: (63,0)-(63,14))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -1139,11 +1228,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (63,1)-(63,14))
+ │ ├── flags: ∅
│ ├── locals: [:o, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (63,3)-(63,12))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (63,4)-(63,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (63,4)-(63,7))
@@ -1153,7 +1245,7 @@
│ │ │ │ ├── operator_loc: (63,5)-(63,6) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (63,6)-(63,7))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
@@ -1172,7 +1264,7 @@
│ ├── opening_loc: (63,1)-(63,2) = "{"
│ └── closing_loc: (63,13)-(63,14) = "}"
├── @ CallNode (location: (65,0)-(65,18))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -1182,11 +1274,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (65,1)-(65,18))
+ │ ├── flags: ∅
│ ├── locals: [:o, :r, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (65,3)-(65,16))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (65,4)-(65,15))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (65,4)-(65,7))
@@ -1196,7 +1291,7 @@
│ │ │ │ ├── operator_loc: (65,5)-(65,6) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (65,6)-(65,7))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (65,9)-(65,11))
@@ -1220,7 +1315,7 @@
│ ├── opening_loc: (65,1)-(65,2) = "{"
│ └── closing_loc: (65,17)-(65,18) = "}"
├── @ CallNode (location: (67,0)-(67,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -1230,11 +1325,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (67,1)-(67,21))
+ │ ├── flags: ∅
│ ├── locals: [:o, :r, :p, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (67,3)-(67,19))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (67,4)-(67,18))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (67,4)-(67,7))
@@ -1244,7 +1342,7 @@
│ │ │ │ ├── operator_loc: (67,5)-(67,6) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (67,6)-(67,7))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (67,9)-(67,11))
@@ -1271,7 +1369,7 @@
│ ├── opening_loc: (67,1)-(67,2) = "{"
│ └── closing_loc: (67,20)-(67,21) = "}"
├── @ CallNode (location: (69,0)-(69,17))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f
@@ -1281,11 +1379,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (69,1)-(69,17))
+ │ ├── flags: ∅
│ ├── locals: [:o, :p, :b]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (69,3)-(69,15))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (69,4)-(69,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (69,4)-(69,7))
@@ -1295,7 +1396,7 @@
│ │ │ │ ├── operator_loc: (69,5)-(69,6) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (69,6)-(69,7))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 1)
@@ -1317,7 +1418,7 @@
│ ├── opening_loc: (69,1)-(69,2) = "{"
│ └── closing_loc: (69,16)-(69,17) = "}"
└── @ CallNode (location: (71,0)-(71,7))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :f
@@ -1327,9 +1428,11 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (71,1)-(71,7))
+ ├── flags: ∅
├── locals: []
├── parameters:
│ @ BlockParametersNode (location: (71,3)-(71,5))
+ │ ├── flags: ∅
│ ├── parameters: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (71,3)-(71,4) = "|"
diff --git a/test/prism/snapshots/whitequark/bug_435.txt b/test/prism/snapshots/whitequark/bug_435.txt
index 42f9a49c5c..2f497be046 100644
--- a/test/prism/snapshots/whitequark/bug_435.txt
+++ b/test/prism/snapshots/whitequark/bug_435.txt
@@ -1,26 +1,33 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,14))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "\""
├── parts: (length: 1)
│ └── @ EmbeddedStatementsNode (location: (1,1)-(1,13))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,1)-(1,3) = "\#{"
│ ├── statements:
│ │ @ StatementsNode (location: (1,3)-(1,12))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LambdaNode (location: (1,3)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── locals: [:foo]
│ │ ├── operator_loc: (1,3)-(1,5) = "->"
│ │ ├── opening_loc: (1,10)-(1,11) = "{"
│ │ ├── closing_loc: (1,11)-(1,12) = "}"
│ │ ├── parameters:
│ │ │ @ BlockParametersNode (location: (1,6)-(1,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── parameters:
│ │ │ │ @ ParametersNode (location: (1,6)-(1,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── requireds: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (1,6)-(1,9))
│ │ │ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/whitequark/bug_447.txt b/test/prism/snapshots/whitequark/bug_447.txt
index 7291d01175..6c8644d462 100644
--- a/test/prism/snapshots/whitequark/bug_447.txt
+++ b/test/prism/snapshots/whitequark/bug_447.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,14))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,11))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :m
@@ -15,20 +17,21 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ ArrayNode (location: (1,2)-(1,4))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 0)
│ │ ├── opening_loc: (1,2)-(1,3) = "["
│ │ └── closing_loc: (1,3)-(1,4) = "]"
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,5)-(1,11))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (1,5)-(1,7) = "do"
│ └── closing_loc: (1,8)-(1,11) = "end"
└── @ CallNode (location: (3,0)-(3,14))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :m
@@ -39,16 +42,17 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ ArrayNode (location: (3,2)-(3,4))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 0)
│ │ ├── opening_loc: (3,2)-(3,3) = "["
│ │ └── closing_loc: (3,3)-(3,4) = "]"
│ └── @ IntegerNode (location: (3,6)-(3,7))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block:
@ BlockNode (location: (3,8)-(3,14))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_452.txt b/test/prism/snapshots/whitequark/bug_452.txt
index e1ea52fbd1..f55b54b89a 100644
--- a/test/prism/snapshots/whitequark/bug_452.txt
+++ b/test/prism/snapshots/whitequark/bug_452.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,37))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,37))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :td
@@ -18,11 +20,13 @@
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ ParenthesesNode (location: (1,3)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (1,4)-(1,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (1,4)-(1,9))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ └── value: 1500
│ │ │ ├── opening_loc: (1,3)-(1,4) = "("
│ │ │ └── closing_loc: (1,9)-(1,10) = ")"
@@ -36,7 +40,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (1,23)-(1,37))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,23)-(1,25))
│ ├── flags: variable_call, ignore_visibility
@@ -56,6 +60,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,30)-(1,37))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_466.txt b/test/prism/snapshots/whitequark/bug_466.txt
index 4167c223f2..8556ff6d24 100644
--- a/test/prism/snapshots/whitequark/bug_466.txt
+++ b/test/prism/snapshots/whitequark/bug_466.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,27))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,27))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,27))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :foo
@@ -19,22 +21,26 @@
│ ├── opening_loc: (1,4)-(1,5) = "\""
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedStatementsNode (location: (1,5)-(1,18))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,5)-(1,7) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,7)-(1,17))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,7)-(1,17))
│ │ │ ├── flags: ∅
│ │ │ ├── receiver:
│ │ │ │ @ ParenthesesNode (location: (1,7)-(1,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── body:
│ │ │ │ │ @ StatementsNode (location: (1,8)-(1,11))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ CallNode (location: (1,8)-(1,11))
- │ │ │ │ │ ├── flags: ∅
+ │ │ │ │ │ ├── flags: newline
│ │ │ │ │ ├── receiver:
│ │ │ │ │ │ @ IntegerNode (location: (1,8)-(1,9))
- │ │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ │ └── value: 1
│ │ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ │ ├── name: :+
@@ -45,7 +51,7 @@
│ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── arguments: (length: 1)
│ │ │ │ │ │ └── @ IntegerNode (location: (1,10)-(1,11))
- │ │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ │ └── value: 1
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block: ∅
@@ -63,6 +69,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,20)-(1,27))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_473.txt b/test/prism/snapshots/whitequark/bug_473.txt
index 028b6a517c..fa4c23b8a5 100644
--- a/test/prism/snapshots/whitequark/bug_473.txt
+++ b/test/prism/snapshots/whitequark/bug_473.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: :m
@@ -19,12 +21,14 @@
│ ├── opening_loc: (1,2)-(1,3) = "\""
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedStatementsNode (location: (1,3)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,3)-(1,5) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,5)-(1,7))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ ArrayNode (location: (1,5)-(1,7))
- │ │ │ ├── flags: ∅
+ │ │ │ ├── flags: static_literal
│ │ │ ├── elements: (length: 0)
│ │ │ ├── opening_loc: (1,5)-(1,6) = "["
│ │ │ └── closing_loc: (1,6)-(1,7) = "]"
diff --git a/test/prism/snapshots/whitequark/bug_480.txt b/test/prism/snapshots/whitequark/bug_480.txt
index ed6ba40795..0ddcbae41a 100644
--- a/test/prism/snapshots/whitequark/bug_480.txt
+++ b/test/prism/snapshots/whitequark/bug_480.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: :m
@@ -19,15 +21,19 @@
│ ├── opening_loc: (1,2)-(1,3) = "\""
│ ├── parts: (length: 2)
│ │ ├── @ EmbeddedStatementsNode (location: (1,3)-(1,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,3)-(1,5) = "\#{"
│ │ │ ├── statements: ∅
│ │ │ └── closing_loc: (1,5)-(1,6) = "}"
│ │ └── @ EmbeddedStatementsNode (location: (1,6)-(1,11))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,6)-(1,8) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,8)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ ParenthesesNode (location: (1,8)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (1,8)-(1,9) = "("
│ │ │ └── closing_loc: (1,9)-(1,10) = ")"
diff --git a/test/prism/snapshots/whitequark/bug_481.txt b/test/prism/snapshots/whitequark/bug_481.txt
index 0b093d483c..32879a82b0 100644
--- a/test/prism/snapshots/whitequark/bug_481.txt
+++ b/test/prism/snapshots/whitequark/bug_481.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,28))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,28))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,14))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :m
@@ -15,6 +17,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ DefNode (location: (1,2)-(1,14))
+ │ │ ├── flags: ∅
│ │ ├── name: :x
│ │ ├── name_loc: (1,6)-(1,7) = "x"
│ │ ├── receiver: ∅
@@ -30,10 +33,10 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (1,16)-(1,28))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ IntegerNode (location: (1,16)-(1,17))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── call_operator_loc: (1,17)-(1,18) = "."
├── name: :tap
@@ -43,6 +46,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,22)-(1,28))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_ascii_8bit_in_literal.txt b/test/prism/snapshots/whitequark/bug_ascii_8bit_in_literal.txt
index 7aa8694f66..4c90854f55 100644
--- a/test/prism/snapshots/whitequark/bug_ascii_8bit_in_literal.txt
+++ b/test/prism/snapshots/whitequark/bug_ascii_8bit_in_literal.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (2,9)-(2,75))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (2,9)-(2,75))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (2,9)-(2,75))
- ├── flags: forced_utf8_encoding
+ ├── flags: newline, forced_utf8_encoding
├── opening_loc: (2,9)-(2,10) = "\""
├── content_loc: (2,10)-(2,74) = "\\xD0\\xBF\\xD1\\x80\\xD0\\xBE\\xD0\\xB2\\xD0\\xB5\\xD1\\x80\\xD0\\xBA\\xD0\\xB0"
├── closing_loc: (2,74)-(2,75) = "\""
diff --git a/test/prism/snapshots/whitequark/bug_cmd_string_lookahead.txt b/test/prism/snapshots/whitequark/bug_cmd_string_lookahead.txt
index 50c988fa1f..6a581ca6cc 100644
--- a/test/prism/snapshots/whitequark/bug_cmd_string_lookahead.txt
+++ b/test/prism/snapshots/whitequark/bug_cmd_string_lookahead.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: :desc
@@ -23,6 +25,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,11)-(1,17))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_cmdarg.txt b/test/prism/snapshots/whitequark/bug_cmdarg.txt
index 32d05746a7..efdb375dc8 100644
--- a/test/prism/snapshots/whitequark/bug_cmdarg.txt
+++ b/test/prism/snapshots/whitequark/bug_cmdarg.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,26))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,26))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CallNode (location: (1,0)-(1,15))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :assert
@@ -18,20 +20,22 @@
│ │ ├── flags: symbol_keys
│ │ └── elements: (length: 1)
│ │ └── @ AssocNode (location: (1,7)-(1,15))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,7)-(1,10))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,7)-(1,9) = "do"
│ │ │ ├── closing_loc: (1,9)-(1,10) = ":"
│ │ │ └── unescaped: "do"
│ │ ├── value:
│ │ │ @ TrueNode (location: (1,11)-(1,15))
+ │ │ │ └── flags: static_literal
│ │ └── operator_loc: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,11))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :assert
@@ -54,7 +58,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (5,0)-(5,26))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :f
@@ -68,15 +72,17 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (5,2)-(5,26))
+ │ ├── flags: ∅
│ ├── key:
│ │ @ SymbolNode (location: (5,2)-(5,4))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (5,2)-(5,3) = "x"
│ │ ├── closing_loc: (5,3)-(5,4) = ":"
│ │ └── unescaped: "x"
│ ├── value:
│ │ @ LambdaNode (location: (5,5)-(5,26))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── operator_loc: (5,5)-(5,7) = "->"
│ │ ├── opening_loc: (5,8)-(5,10) = "do"
@@ -84,9 +90,10 @@
│ │ ├── parameters: ∅
│ │ └── body:
│ │ @ StatementsNode (location: (5,11)-(5,22))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (5,11)-(5,22))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :meth
@@ -96,6 +103,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (5,16)-(5,22))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_def_no_paren_eql_begin.txt b/test/prism/snapshots/whitequark/bug_def_no_paren_eql_begin.txt
index 1b45d0132b..eab5d4484a 100644
--- a/test/prism/snapshots/whitequark/bug_def_no_paren_eql_begin.txt
+++ b/test/prism/snapshots/whitequark/bug_def_no_paren_eql_begin.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(4,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(4,3))
+ ├── flags: newline
├── name: :foo
├── name_loc: (1,4)-(1,7) = "foo"
├── receiver: ∅
diff --git a/test/prism/snapshots/whitequark/bug_do_block_in_call_args.txt b/test/prism/snapshots/whitequark/bug_do_block_in_call_args.txt
index 9b95adda35..770a175c2e 100644
--- a/test/prism/snapshots/whitequark/bug_do_block_in_call_args.txt
+++ b/test/prism/snapshots/whitequark/bug_do_block_in_call_args.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: :bar
@@ -15,17 +17,20 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ DefNode (location: (1,4)-(1,33))
+ │ ├── flags: ∅
│ ├── name: :foo
│ ├── name_loc: (1,8)-(1,11) = "foo"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,13)-(1,29))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,13)-(1,29))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver:
│ │ │ @ SelfNode (location: (1,13)-(1,17))
+ │ │ │ └── flags: ∅
│ │ ├── call_operator_loc: (1,17)-(1,18) = "."
│ │ ├── name: :each
│ │ ├── message_loc: (1,18)-(1,22) = "each"
@@ -34,6 +39,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (1,23)-(1,29))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_do_block_in_cmdarg.txt b/test/prism/snapshots/whitequark/bug_do_block_in_cmdarg.txt
index 3946bc1a4a..ff5af609e2 100644
--- a/test/prism/snapshots/whitequark/bug_do_block_in_cmdarg.txt
+++ b/test/prism/snapshots/whitequark/bug_do_block_in_cmdarg.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: :tap
@@ -15,11 +17,13 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (1,4)-(1,17))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,5)-(1,16))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,5)-(1,16))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :proc
@@ -29,6 +33,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (1,10)-(1,16))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_do_block_in_hash_brace.txt b/test/prism/snapshots/whitequark/bug_do_block_in_hash_brace.txt
index 183d465439..0242d5e661 100644
--- a/test/prism/snapshots/whitequark/bug_do_block_in_hash_brace.txt
+++ b/test/prism/snapshots/whitequark/bug_do_block_in_hash_brace.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(9,52))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(9,52))
+ ├── flags: ∅
└── body: (length: 5)
├── @ CallNode (location: (1,0)-(1,42))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -15,18 +17,20 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (1,2)-(1,6))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (1,2)-(1,3) = ":"
│ │ │ ├── value_loc: (1,3)-(1,6) = "foo"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo"
│ │ └── @ HashNode (location: (1,8)-(1,42))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,8)-(1,9) = "{"
│ │ ├── elements: (length: 2)
│ │ │ ├── @ AssocNode (location: (1,9)-(1,25))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (1,9)-(1,13))
- │ │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ │ ├── opening_loc: (1,9)-(1,10) = "\""
│ │ │ │ │ ├── value_loc: (1,10)-(1,11) = "a"
│ │ │ │ │ ├── closing_loc: (1,11)-(1,13) = "\":"
@@ -43,6 +47,7 @@
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block:
│ │ │ │ │ @ BlockNode (location: (1,19)-(1,25))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── locals: []
│ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅
@@ -50,9 +55,10 @@
│ │ │ │ │ └── closing_loc: (1,22)-(1,25) = "end"
│ │ │ │ └── operator_loc: ∅
│ │ │ └── @ AssocNode (location: (1,27)-(1,41))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (1,27)-(1,29))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (1,27)-(1,28) = "b"
│ │ │ │ ├── closing_loc: (1,28)-(1,29) = ":"
@@ -69,6 +75,7 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block:
│ │ │ │ @ BlockNode (location: (1,35)-(1,41))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅
@@ -79,7 +86,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,40))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -90,15 +97,17 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ 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,6) = "foo"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo"
│ │ └── @ HashNode (location: (3,8)-(3,40))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (3,8)-(3,9) = "{"
│ │ ├── elements: (length: 2)
│ │ │ ├── @ AssocSplatNode (location: (3,9)-(3,23))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── value:
│ │ │ │ │ @ CallNode (location: (3,12)-(3,23))
│ │ │ │ │ ├── flags: ignore_visibility
@@ -111,6 +120,7 @@
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block:
│ │ │ │ │ @ BlockNode (location: (3,17)-(3,23))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── locals: []
│ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅
@@ -118,9 +128,10 @@
│ │ │ │ │ └── closing_loc: (3,20)-(3,23) = "end"
│ │ │ │ └── operator_loc: (3,9)-(3,11) = "**"
│ │ │ └── @ AssocNode (location: (3,25)-(3,39))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (3,25)-(3,27))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (3,25)-(3,26) = "b"
│ │ │ │ ├── closing_loc: (3,26)-(3,27) = ":"
@@ -137,6 +148,7 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block:
│ │ │ │ @ BlockNode (location: (3,33)-(3,39))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅
@@ -147,7 +159,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (5,0)-(5,43))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -158,18 +170,20 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ 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,6) = "foo"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo"
│ │ └── @ HashNode (location: (5,8)-(5,43))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (5,8)-(5,9) = "{"
│ │ ├── elements: (length: 2)
│ │ │ ├── @ AssocNode (location: (5,9)-(5,26))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── key:
│ │ │ │ │ @ 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) = "a"
│ │ │ │ │ ├── closing_loc: ∅
@@ -186,6 +200,7 @@
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block:
│ │ │ │ │ @ BlockNode (location: (5,20)-(5,26))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── locals: []
│ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅
@@ -193,9 +208,10 @@
│ │ │ │ │ └── closing_loc: (5,23)-(5,26) = "end"
│ │ │ │ └── operator_loc: (5,12)-(5,14) = "=>"
│ │ │ └── @ AssocNode (location: (5,28)-(5,42))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (5,28)-(5,30))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (5,28)-(5,29) = "b"
│ │ │ │ ├── closing_loc: (5,29)-(5,30) = ":"
@@ -212,6 +228,7 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block:
│ │ │ │ @ BlockNode (location: (5,36)-(5,42))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅
@@ -222,7 +239,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (7,0)-(7,40))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -233,18 +250,20 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (7,2)-(7,6))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (7,2)-(7,3) = ":"
│ │ │ ├── value_loc: (7,3)-(7,6) = "foo"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo"
│ │ └── @ HashNode (location: (7,8)-(7,40))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (7,8)-(7,9) = "{"
│ │ ├── elements: (length: 2)
│ │ │ ├── @ AssocNode (location: (7,9)-(7,23))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (7,9)-(7,11))
- │ │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (7,9)-(7,10) = "a"
│ │ │ │ │ ├── closing_loc: (7,10)-(7,11) = ":"
@@ -261,6 +280,7 @@
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block:
│ │ │ │ │ @ BlockNode (location: (7,17)-(7,23))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── locals: []
│ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body: ∅
@@ -268,9 +288,10 @@
│ │ │ │ │ └── closing_loc: (7,20)-(7,23) = "end"
│ │ │ │ └── operator_loc: ∅
│ │ │ └── @ AssocNode (location: (7,25)-(7,39))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (7,25)-(7,27))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (7,25)-(7,26) = "b"
│ │ │ │ ├── closing_loc: (7,26)-(7,27) = ":"
@@ -287,6 +308,7 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block:
│ │ │ │ @ BlockNode (location: (7,33)-(7,39))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅
@@ -297,7 +319,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (9,0)-(9,52))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :p
@@ -308,15 +330,17 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ SymbolNode (location: (9,2)-(9,6))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (9,2)-(9,3) = ":"
│ │ ├── value_loc: (9,3)-(9,6) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ └── @ HashNode (location: (9,8)-(9,52))
+ │ ├── flags: ∅
│ ├── opening_loc: (9,8)-(9,9) = "{"
│ ├── elements: (length: 2)
│ │ ├── @ AssocNode (location: (9,9)-(9,35))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ CallNode (location: (9,9)-(9,20))
│ │ │ │ ├── flags: ignore_visibility
@@ -329,6 +353,7 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block:
│ │ │ │ @ BlockNode (location: (9,14)-(9,20))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅
@@ -346,6 +371,7 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block:
│ │ │ │ @ BlockNode (location: (9,29)-(9,35))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅
@@ -353,9 +379,10 @@
│ │ │ │ └── closing_loc: (9,32)-(9,35) = "end"
│ │ │ └── operator_loc: (9,21)-(9,23) = "=>"
│ │ └── @ AssocNode (location: (9,37)-(9,51))
+ │ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (9,37)-(9,39))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (9,37)-(9,38) = "b"
│ │ │ ├── closing_loc: (9,38)-(9,39) = ":"
@@ -372,6 +399,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (9,45)-(9,51))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_heredoc_do.txt b/test/prism/snapshots/whitequark/bug_heredoc_do.txt
index bf4dd645fb..46e721c46f 100644
--- a/test/prism/snapshots/whitequark/bug_heredoc_do.txt
+++ b/test/prism/snapshots/whitequark/bug_heredoc_do.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: :f
@@ -23,6 +25,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,11)-(3,3))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/bug_interp_single.txt b/test/prism/snapshots/whitequark/bug_interp_single.txt
index 74af8607e0..e231a84ae2 100644
--- a/test/prism/snapshots/whitequark/bug_interp_single.txt
+++ b/test/prism/snapshots/whitequark/bug_interp_single.txt
@@ -1,36 +1,42 @@
@ ProgramNode (location: (1,0)-(3,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,8))
+ ├── flags: ∅
└── body: (length: 2)
├── @ InterpolatedStringNode (location: (1,0)-(1,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,1) = "\""
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedStatementsNode (location: (1,1)-(1,5))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,1)-(1,3) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,3)-(1,4))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,3)-(1,4))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── closing_loc: (1,4)-(1,5) = "}"
│ └── closing_loc: (1,5)-(1,6) = "\""
└── @ ArrayNode (location: (3,0)-(3,8))
- ├── flags: ∅
+ ├── flags: newline
├── elements: (length: 1)
│ └── @ InterpolatedStringNode (location: (3,3)-(3,7))
│ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedStatementsNode (location: (3,3)-(3,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (3,3)-(3,5) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (3,5)-(3,6))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (3,5)-(3,6))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── closing_loc: (3,6)-(3,7) = "}"
│ └── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/bug_lambda_leakage.txt b/test/prism/snapshots/whitequark/bug_lambda_leakage.txt
index 7178345a22..66e3ebac76 100644
--- a/test/prism/snapshots/whitequark/bug_lambda_leakage.txt
+++ b/test/prism/snapshots/whitequark/bug_lambda_leakage.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(1,19))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,19))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LambdaNode (location: (1,0)-(1,12))
+ │ ├── flags: newline
│ ├── locals: [:scope]
│ ├── operator_loc: (1,0)-(1,2) = "->"
│ ├── opening_loc: (1,10)-(1,11) = "{"
│ ├── closing_loc: (1,11)-(1,12) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,2)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (1,3)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (1,3)-(1,8))
│ │ │ │ ├── flags: ∅
@@ -27,7 +32,7 @@
│ │ └── closing_loc: (1,8)-(1,9) = ")"
│ └── body: ∅
└── @ CallNode (location: (1,14)-(1,19))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :scope
diff --git a/test/prism/snapshots/whitequark/bug_regex_verification.txt b/test/prism/snapshots/whitequark/bug_regex_verification.txt
index 4464b66e38..bf80a50fb0 100644
--- a/test/prism/snapshots/whitequark/bug_regex_verification.txt
+++ b/test/prism/snapshots/whitequark/bug_regex_verification.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ RegularExpressionNode (location: (1,0)-(1,5))
- ├── flags: extended, forced_us_ascii_encoding
+ ├── flags: newline, static_literal, extended, forced_us_ascii_encoding
├── opening_loc: (1,0)-(1,1) = "/"
├── content_loc: (1,1)-(1,3) = "#)"
├── closing_loc: (1,3)-(1,5) = "/x"
diff --git a/test/prism/snapshots/whitequark/bug_rescue_empty_else.txt b/test/prism/snapshots/whitequark/bug_rescue_empty_else.txt
index 52734cc1e9..acf6e006b6 100644
--- a/test/prism/snapshots/whitequark/bug_rescue_empty_else.txt
+++ b/test/prism/snapshots/whitequark/bug_rescue_empty_else.txt
@@ -1,16 +1,21 @@
@ ProgramNode (location: (1,0)-(1,34))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,34))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,34))
+ ├── flags: newline
├── begin_keyword_loc: (1,0)-(1,5) = "begin"
├── statements: ∅
├── rescue_clause:
│ @ RescueNode (location: (1,7)-(1,23))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,7)-(1,13) = "rescue"
│ ├── exceptions: (length: 1)
│ │ └── @ ConstantReadNode (location: (1,14)-(1,23))
+ │ │ ├── flags: ∅
│ │ └── name: :LoadError
│ ├── operator_loc: ∅
│ ├── reference: ∅
@@ -18,6 +23,7 @@
│ └── consequent: ∅
├── else_clause:
│ @ ElseNode (location: (1,25)-(1,34))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,25)-(1,29) = "else"
│ ├── statements: ∅
│ └── end_keyword_loc: (1,31)-(1,34) = "end"
diff --git a/test/prism/snapshots/whitequark/bug_while_not_parens_do.txt b/test/prism/snapshots/whitequark/bug_while_not_parens_do.txt
index aa8aa11ccc..5bb335dd8c 100644
--- a/test/prism/snapshots/whitequark/bug_while_not_parens_do.txt
+++ b/test/prism/snapshots/whitequark/bug_while_not_parens_do.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,23))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,23))
+ ├── flags: ∅
└── body: (length: 1)
└── @ WhileNode (location: (1,0)-(1,23))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (1,0)-(1,5) = "while"
├── closing_loc: (1,20)-(1,23) = "end"
├── predicate:
@@ -12,10 +14,13 @@
│ ├── flags: ∅
│ ├── receiver:
│ │ @ ParenthesesNode (location: (1,10)-(1,16))
+ │ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (1,11)-(1,15))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ TrueNode (location: (1,11)-(1,15))
+ │ │ │ └── flags: newline, static_literal
│ │ ├── opening_loc: (1,10)-(1,11) = "("
│ │ └── closing_loc: (1,15)-(1,16) = ")"
│ ├── call_operator_loc: ∅
diff --git a/test/prism/snapshots/whitequark/case_cond.txt b/test/prism/snapshots/whitequark/case_cond.txt
index fbe17eaf8f..38dcf68b13 100644
--- a/test/prism/snapshots/whitequark/case_cond.txt
+++ b/test/prism/snapshots/whitequark/case_cond.txt
@@ -1,12 +1,16 @@
@ 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: ∅
├── conditions: (length: 1)
│ └── @ WhenNode (location: (1,6)-(1,21))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,6)-(1,10) = "when"
│ ├── conditions: (length: 1)
│ │ └── @ CallNode (location: (1,11)-(1,14))
@@ -22,9 +26,10 @@
│ ├── then_keyword_loc: ∅
│ └── statements:
│ @ StatementsNode (location: (1,16)-(1,21))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ StringNode (location: (1,16)-(1,21))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,16)-(1,17) = "'"
│ ├── content_loc: (1,17)-(1,20) = "foo"
│ ├── closing_loc: (1,20)-(1,21) = "'"
diff --git a/test/prism/snapshots/whitequark/case_cond_else.txt b/test/prism/snapshots/whitequark/case_cond_else.txt
index b1aff2450e..58a7bc55a3 100644
--- a/test/prism/snapshots/whitequark/case_cond_else.txt
+++ b/test/prism/snapshots/whitequark/case_cond_else.txt
@@ -1,12 +1,16 @@
@ ProgramNode (location: (1,0)-(1,38))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,38))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseNode (location: (1,0)-(1,38))
+ ├── flags: newline
├── predicate: ∅
├── conditions: (length: 1)
│ └── @ WhenNode (location: (1,6)-(1,21))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,6)-(1,10) = "when"
│ ├── conditions: (length: 1)
│ │ └── @ CallNode (location: (1,11)-(1,14))
@@ -22,21 +26,24 @@
│ ├── then_keyword_loc: ∅
│ └── statements:
│ @ StatementsNode (location: (1,16)-(1,21))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ StringNode (location: (1,16)-(1,21))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,16)-(1,17) = "'"
│ ├── content_loc: (1,17)-(1,20) = "foo"
│ ├── closing_loc: (1,20)-(1,21) = "'"
│ └── unescaped: "foo"
├── consequent:
│ @ ElseNode (location: (1,23)-(1,38))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,23)-(1,27) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (1,28)-(1,33))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ StringNode (location: (1,28)-(1,33))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── opening_loc: (1,28)-(1,29) = "'"
│ │ ├── content_loc: (1,29)-(1,32) = "bar"
│ │ ├── closing_loc: (1,32)-(1,33) = "'"
diff --git a/test/prism/snapshots/whitequark/case_expr.txt b/test/prism/snapshots/whitequark/case_expr.txt
index 23054ed132..b7a2fa0106 100644
--- a/test/prism/snapshots/whitequark/case_expr.txt
+++ b/test/prism/snapshots/whitequark/case_expr.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,30))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,30))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseNode (location: (1,0)-(1,30))
+ ├── flags: newline
├── predicate:
│ @ CallNode (location: (1,5)-(1,8))
│ ├── flags: variable_call, ignore_visibility
@@ -17,10 +20,11 @@
│ └── block: ∅
├── conditions: (length: 1)
│ └── @ WhenNode (location: (1,10)-(1,25))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,10)-(1,14) = "when"
│ ├── conditions: (length: 1)
│ │ └── @ StringNode (location: (1,15)-(1,20))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (1,15)-(1,16) = "'"
│ │ ├── content_loc: (1,16)-(1,19) = "bar"
│ │ ├── closing_loc: (1,19)-(1,20) = "'"
@@ -28,9 +32,10 @@
│ ├── then_keyword_loc: ∅
│ └── statements:
│ @ StatementsNode (location: (1,22)-(1,25))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,22)-(1,25))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/case_expr_else.txt b/test/prism/snapshots/whitequark/case_expr_else.txt
index 0624d97c84..8a61e076a3 100644
--- a/test/prism/snapshots/whitequark/case_expr_else.txt
+++ b/test/prism/snapshots/whitequark/case_expr_else.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,40))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,40))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseNode (location: (1,0)-(1,40))
+ ├── flags: newline
├── predicate:
│ @ CallNode (location: (1,5)-(1,8))
│ ├── flags: variable_call, ignore_visibility
@@ -17,10 +20,11 @@
│ └── block: ∅
├── conditions: (length: 1)
│ └── @ WhenNode (location: (1,10)-(1,25))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,10)-(1,14) = "when"
│ ├── conditions: (length: 1)
│ │ └── @ StringNode (location: (1,15)-(1,20))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (1,15)-(1,16) = "'"
│ │ ├── content_loc: (1,16)-(1,19) = "bar"
│ │ ├── closing_loc: (1,19)-(1,20) = "'"
@@ -28,9 +32,10 @@
│ ├── then_keyword_loc: ∅
│ └── statements:
│ @ StatementsNode (location: (1,22)-(1,25))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,22)-(1,25))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
@@ -41,12 +46,14 @@
│ └── block: ∅
├── consequent:
│ @ ElseNode (location: (1,27)-(1,40))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,27)-(1,31) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (1,32)-(1,35))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,32)-(1,35))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :baz
diff --git a/test/prism/snapshots/whitequark/casgn_scoped.txt b/test/prism/snapshots/whitequark/casgn_scoped.txt
index 42b90be061..03f3b0b25b 100644
--- a/test/prism/snapshots/whitequark/casgn_scoped.txt
+++ b/test/prism/snapshots/whitequark/casgn_scoped.txt
@@ -1,13 +1,18 @@
@ ProgramNode (location: (1,0)-(1,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ConstantPathWriteNode (location: (1,0)-(1,13))
+ ├── flags: newline
├── target:
│ @ ConstantPathNode (location: (1,0)-(1,8))
+ │ ├── flags: ∅
│ ├── parent:
│ │ @ ConstantReadNode (location: (1,0)-(1,3))
+ │ │ ├── flags: ∅
│ │ └── name: :Bar
│ ├── name: :Foo
│ ├── delimiter_loc: (1,3)-(1,5) = "::"
@@ -15,5 +20,5 @@
├── operator_loc: (1,9)-(1,10) = "="
└── value:
@ IntegerNode (location: (1,11)-(1,13))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
└── value: 10
diff --git a/test/prism/snapshots/whitequark/casgn_toplevel.txt b/test/prism/snapshots/whitequark/casgn_toplevel.txt
index 070d90a46b..dbc344a7af 100644
--- a/test/prism/snapshots/whitequark/casgn_toplevel.txt
+++ b/test/prism/snapshots/whitequark/casgn_toplevel.txt
@@ -1,11 +1,15 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ConstantPathWriteNode (location: (1,0)-(1,10))
+ ├── flags: newline
├── target:
│ @ ConstantPathNode (location: (1,0)-(1,5))
+ │ ├── flags: ∅
│ ├── parent: ∅
│ ├── name: :Foo
│ ├── delimiter_loc: (1,0)-(1,2) = "::"
@@ -13,5 +17,5 @@
├── operator_loc: (1,6)-(1,7) = "="
└── value:
@ IntegerNode (location: (1,8)-(1,10))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
└── value: 10
diff --git a/test/prism/snapshots/whitequark/casgn_unscoped.txt b/test/prism/snapshots/whitequark/casgn_unscoped.txt
index f535cafdc6..19b11b1b43 100644
--- a/test/prism/snapshots/whitequark/casgn_unscoped.txt
+++ b/test/prism/snapshots/whitequark/casgn_unscoped.txt
@@ -1,13 +1,16 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ConstantWriteNode (location: (1,0)-(1,8))
+ ├── flags: newline
├── name: :Foo
├── name_loc: (1,0)-(1,3) = "Foo"
├── value:
│ @ IntegerNode (location: (1,6)-(1,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 10
└── operator_loc: (1,4)-(1,5) = "="
diff --git a/test/prism/snapshots/whitequark/character.txt b/test/prism/snapshots/whitequark/character.txt
index b70f05b544..718ba317fb 100644
--- a/test/prism/snapshots/whitequark/character.txt
+++ b/test/prism/snapshots/whitequark/character.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,2))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,2))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,2))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "?"
├── content_loc: (1,1)-(1,2) = "a"
├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/class.txt b/test/prism/snapshots/whitequark/class.txt
index e38bec6c47..53de7eb6d6 100644
--- a/test/prism/snapshots/whitequark/class.txt
+++ b/test/prism/snapshots/whitequark/class.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(3,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,14))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ClassNode (location: (1,0)-(1,13))
+ │ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (1,0)-(1,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (1,6)-(1,9))
+ │ │ ├── flags: ∅
│ │ └── name: :Foo
│ ├── inheritance_operator_loc: ∅
│ ├── superclass: ∅
@@ -15,10 +19,12 @@
│ ├── end_keyword_loc: (1,10)-(1,13) = "end"
│ └── name: :Foo
└── @ ClassNode (location: (3,0)-(3,14))
+ ├── flags: newline
├── locals: []
├── class_keyword_loc: (3,0)-(3,5) = "class"
├── constant_path:
│ @ ConstantReadNode (location: (3,6)-(3,9))
+ │ ├── flags: ∅
│ └── name: :Foo
├── inheritance_operator_loc: ∅
├── superclass: ∅
diff --git a/test/prism/snapshots/whitequark/class_super.txt b/test/prism/snapshots/whitequark/class_super.txt
index ea8bbd70d9..dd9b1d5fe8 100644
--- a/test/prism/snapshots/whitequark/class_super.txt
+++ b/test/prism/snapshots/whitequark/class_super.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(1,20))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,20))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ClassNode (location: (1,0)-(1,20))
+ ├── flags: newline
├── locals: []
├── class_keyword_loc: (1,0)-(1,5) = "class"
├── constant_path:
│ @ ConstantReadNode (location: (1,6)-(1,9))
+ │ ├── flags: ∅
│ └── name: :Foo
├── inheritance_operator_loc: (1,10)-(1,11) = "<"
├── superclass:
│ @ ConstantReadNode (location: (1,12)-(1,15))
+ │ ├── flags: ∅
│ └── name: :Bar
├── body: ∅
├── end_keyword_loc: (1,17)-(1,20) = "end"
diff --git a/test/prism/snapshots/whitequark/class_super_label.txt b/test/prism/snapshots/whitequark/class_super_label.txt
index c873ea0c12..590f971930 100644
--- a/test/prism/snapshots/whitequark/class_super_label.txt
+++ b/test/prism/snapshots/whitequark/class_super_label.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(1,20))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,20))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ClassNode (location: (1,0)-(1,20))
+ ├── flags: newline
├── locals: []
├── class_keyword_loc: (1,0)-(1,5) = "class"
├── constant_path:
│ @ ConstantReadNode (location: (1,6)-(1,9))
+ │ ├── flags: ∅
│ └── name: :Foo
├── inheritance_operator_loc: (1,10)-(1,11) = "<"
├── superclass:
@@ -23,7 +27,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ 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) = "b"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/comments_before_leading_dot__27.txt b/test/prism/snapshots/whitequark/comments_before_leading_dot__27.txt
index e33f798ef5..0f3e727cb0 100644
--- a/test/prism/snapshots/whitequark/comments_before_leading_dot__27.txt
+++ b/test/prism/snapshots/whitequark/comments_before_leading_dot__27.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(18,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(18,4))
+ ├── flags: ∅
└── body: (length: 4)
├── @ CallNode (location: (1,0)-(3,5))
- │ ├── flags: safe_navigation
+ │ ├── flags: newline, safe_navigation
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,1))
│ │ ├── flags: variable_call, ignore_visibility
@@ -24,7 +26,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (6,0)-(8,4))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (6,0)-(6,1))
│ │ ├── flags: variable_call, ignore_visibility
@@ -44,7 +46,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (11,0)-(13,5))
- │ ├── flags: safe_navigation
+ │ ├── flags: newline, safe_navigation
│ ├── receiver:
│ │ @ CallNode (location: (11,0)-(11,1))
│ │ ├── flags: variable_call, ignore_visibility
@@ -64,7 +66,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (16,0)-(18,4))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (16,0)-(16,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/complex.txt b/test/prism/snapshots/whitequark/complex.txt
index bc748db09b..51725453e3 100644
--- a/test/prism/snapshots/whitequark/complex.txt
+++ b/test/prism/snapshots/whitequark/complex.txt
@@ -1,26 +1,33 @@
@ ProgramNode (location: (1,0)-(7,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(7,4))
+ ├── flags: ∅
└── body: (length: 4)
├── @ ImaginaryNode (location: (1,0)-(1,5))
+ │ ├── flags: newline, static_literal
│ └── numeric:
│ @ FloatNode (location: (1,0)-(1,4))
+ │ ├── flags: static_literal
│ └── value: 42.1
├── @ ImaginaryNode (location: (3,0)-(3,6))
+ │ ├── flags: newline, static_literal
│ └── numeric:
│ @ RationalNode (location: (3,0)-(3,5))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ ├── numerator: 421
│ └── denominator: 10
├── @ ImaginaryNode (location: (5,0)-(5,3))
+ │ ├── flags: newline, static_literal
│ └── numeric:
│ @ IntegerNode (location: (5,0)-(5,2))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 42
└── @ ImaginaryNode (location: (7,0)-(7,4))
+ ├── flags: newline, static_literal
└── numeric:
@ RationalNode (location: (7,0)-(7,3))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
├── numerator: 42
└── denominator: 1
diff --git a/test/prism/snapshots/whitequark/cond_begin.txt b/test/prism/snapshots/whitequark/cond_begin.txt
index e349c198a5..692e4aba46 100644
--- a/test/prism/snapshots/whitequark/cond_begin.txt
+++ b/test/prism/snapshots/whitequark/cond_begin.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(1,18))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,18))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,18))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ ParenthesesNode (location: (1,3)-(1,8))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,4)-(1,7))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,4)-(1,7))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
@@ -25,9 +30,10 @@
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (1,10)-(1,13))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,10)-(1,13))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
diff --git a/test/prism/snapshots/whitequark/cond_begin_masgn.txt b/test/prism/snapshots/whitequark/cond_begin_masgn.txt
index b4e6d8682c..fa81cd977f 100644
--- a/test/prism/snapshots/whitequark/cond_begin_masgn.txt
+++ b/test/prism/snapshots/whitequark/cond_begin_masgn.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(1,25))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(1,25))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,25))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ ParenthesesNode (location: (1,3)-(1,20))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,4)-(1,19))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 2)
│ │ ├── @ CallNode (location: (1,4)-(1,7))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
@@ -21,11 +26,14 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── @ MultiWriteNode (location: (1,9)-(1,19))
+ │ │ ├── flags: newline
│ │ ├── lefts: (length: 2)
│ │ │ ├── @ LocalVariableTargetNode (location: (1,9)-(1,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableTargetNode (location: (1,12)-(1,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ └── depth: 0
│ │ ├── rest: ∅
diff --git a/test/prism/snapshots/whitequark/cond_eflipflop.txt b/test/prism/snapshots/whitequark/cond_eflipflop.txt
index 18fee58492..fb06302afb 100644
--- a/test/prism/snapshots/whitequark/cond_eflipflop.txt
+++ b/test/prism/snapshots/whitequark/cond_eflipflop.txt
@@ -1,17 +1,21 @@
@ ProgramNode (location: (1,0)-(3,17))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,17))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,12))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ ParenthesesNode (location: (1,1)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (1,2)-(1,11))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ FlipFlopNode (location: (1,2)-(1,11))
- │ │ │ ├── flags: exclude_end
+ │ │ │ ├── flags: newline, exclude_end
│ │ │ ├── left:
│ │ │ │ @ CallNode (location: (1,2)-(1,5))
│ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -45,6 +49,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ IfNode (location: (3,0)-(3,17))
+ ├── flags: newline
├── if_keyword_loc: (3,0)-(3,2) = "if"
├── predicate:
│ @ FlipFlopNode (location: (3,3)-(3,12))
diff --git a/test/prism/snapshots/whitequark/cond_eflipflop_with_beginless_range.txt b/test/prism/snapshots/whitequark/cond_eflipflop_with_beginless_range.txt
index 05972521e8..533752b6af 100644
--- a/test/prism/snapshots/whitequark/cond_eflipflop_with_beginless_range.txt
+++ b/test/prism/snapshots/whitequark/cond_eflipflop_with_beginless_range.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ FlipFlopNode (location: (1,3)-(1,9))
diff --git a/test/prism/snapshots/whitequark/cond_eflipflop_with_endless_range.txt b/test/prism/snapshots/whitequark/cond_eflipflop_with_endless_range.txt
index c85ff292a5..d850ce137b 100644
--- a/test/prism/snapshots/whitequark/cond_eflipflop_with_endless_range.txt
+++ b/test/prism/snapshots/whitequark/cond_eflipflop_with_endless_range.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ FlipFlopNode (location: (1,3)-(1,9))
diff --git a/test/prism/snapshots/whitequark/cond_iflipflop.txt b/test/prism/snapshots/whitequark/cond_iflipflop.txt
index f76a6636f6..19dbdf7dd4 100644
--- a/test/prism/snapshots/whitequark/cond_iflipflop.txt
+++ b/test/prism/snapshots/whitequark/cond_iflipflop.txt
@@ -1,17 +1,21 @@
@ ProgramNode (location: (1,0)-(3,16))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,16))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,11))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ ParenthesesNode (location: (1,1)-(1,11))
+ │ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (1,2)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ FlipFlopNode (location: (1,2)-(1,10))
- │ │ │ ├── flags: ∅
+ │ │ │ ├── flags: newline
│ │ │ ├── left:
│ │ │ │ @ CallNode (location: (1,2)-(1,5))
│ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -45,6 +49,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ IfNode (location: (3,0)-(3,16))
+ ├── flags: newline
├── if_keyword_loc: (3,0)-(3,2) = "if"
├── predicate:
│ @ FlipFlopNode (location: (3,3)-(3,11))
diff --git a/test/prism/snapshots/whitequark/cond_iflipflop_with_beginless_range.txt b/test/prism/snapshots/whitequark/cond_iflipflop_with_beginless_range.txt
index 63b87ffd49..84f5a4b0b1 100644
--- a/test/prism/snapshots/whitequark/cond_iflipflop_with_beginless_range.txt
+++ b/test/prism/snapshots/whitequark/cond_iflipflop_with_beginless_range.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,13))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ FlipFlopNode (location: (1,3)-(1,8))
diff --git a/test/prism/snapshots/whitequark/cond_iflipflop_with_endless_range.txt b/test/prism/snapshots/whitequark/cond_iflipflop_with_endless_range.txt
index 328a2da153..62e2564556 100644
--- a/test/prism/snapshots/whitequark/cond_iflipflop_with_endless_range.txt
+++ b/test/prism/snapshots/whitequark/cond_iflipflop_with_endless_range.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,13))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ FlipFlopNode (location: (1,3)-(1,8))
diff --git a/test/prism/snapshots/whitequark/cond_match_current_line.txt b/test/prism/snapshots/whitequark/cond_match_current_line.txt
index 700d0966f7..aa9f826a0c 100644
--- a/test/prism/snapshots/whitequark/cond_match_current_line.txt
+++ b/test/prism/snapshots/whitequark/cond_match_current_line.txt
@@ -1,13 +1,15 @@
@ ProgramNode (location: (1,0)-(3,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,13))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ MatchLastLineNode (location: (1,1)-(1,6))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (1,1)-(1,2) = "/"
│ │ ├── content_loc: (1,2)-(1,5) = "wat"
│ │ ├── closing_loc: (1,5)-(1,6) = "/"
@@ -20,10 +22,11 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ IfNode (location: (3,0)-(3,13))
+ ├── flags: newline
├── if_keyword_loc: (3,0)-(3,2) = "if"
├── predicate:
│ @ MatchLastLineNode (location: (3,3)-(3,8))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (3,3)-(3,4) = "/"
│ ├── content_loc: (3,4)-(3,7) = "wat"
│ ├── closing_loc: (3,7)-(3,8) = "/"
diff --git a/test/prism/snapshots/whitequark/const_op_asgn.txt b/test/prism/snapshots/whitequark/const_op_asgn.txt
index 71df6208d2..32c5c7c331 100644
--- a/test/prism/snapshots/whitequark/const_op_asgn.txt
+++ b/test/prism/snapshots/whitequark/const_op_asgn.txt
@@ -1,11 +1,15 @@
@ ProgramNode (location: (1,0)-(9,25))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(9,25))
+ ├── flags: ∅
└── body: (length: 5)
├── @ ConstantPathOperatorWriteNode (location: (1,0)-(1,8))
+ │ ├── flags: newline
│ ├── target:
│ │ @ ConstantPathNode (location: (1,0)-(1,3))
+ │ │ ├── flags: ∅
│ │ ├── parent: ∅
│ │ ├── name: :A
│ │ ├── delimiter_loc: (1,0)-(1,2) = "::"
@@ -13,23 +17,27 @@
│ ├── binary_operator_loc: (1,4)-(1,6) = "+="
│ ├── value:
│ │ @ IntegerNode (location: (1,7)-(1,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── binary_operator: :+
├── @ ConstantOperatorWriteNode (location: (3,0)-(3,6))
+ │ ├── flags: newline
│ ├── name: :A
│ ├── name_loc: (3,0)-(3,1) = "A"
│ ├── binary_operator_loc: (3,2)-(3,4) = "+="
│ ├── value:
│ │ @ IntegerNode (location: (3,5)-(3,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── binary_operator: :+
├── @ ConstantPathOperatorWriteNode (location: (5,0)-(5,9))
+ │ ├── flags: newline
│ ├── target:
│ │ @ ConstantPathNode (location: (5,0)-(5,4))
+ │ │ ├── flags: ∅
│ │ ├── parent:
│ │ │ @ ConstantReadNode (location: (5,0)-(5,1))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :B
│ │ ├── name: :A
│ │ ├── delimiter_loc: (5,1)-(5,3) = "::"
@@ -37,20 +45,24 @@
│ ├── binary_operator_loc: (5,5)-(5,7) = "+="
│ ├── value:
│ │ @ IntegerNode (location: (5,8)-(5,9))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── binary_operator: :+
├── @ DefNode (location: (7,0)-(7,21))
+ │ ├── flags: newline
│ ├── name: :x
│ ├── name_loc: (7,4)-(7,5) = "x"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (7,7)-(7,16))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ConstantPathOrWriteNode (location: (7,7)-(7,16))
+ │ │ ├── flags: newline
│ │ ├── target:
│ │ │ @ ConstantPathNode (location: (7,7)-(7,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── parent: ∅
│ │ │ ├── name: :A
│ │ │ ├── delimiter_loc: (7,7)-(7,9) = "::"
@@ -58,7 +70,7 @@
│ │ ├── operator_loc: (7,11)-(7,14) = "||="
│ │ └── value:
│ │ @ IntegerNode (location: (7,15)-(7,16))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── locals: []
│ ├── def_keyword_loc: (7,0)-(7,3) = "def"
@@ -68,25 +80,30 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (7,18)-(7,21) = "end"
└── @ DefNode (location: (9,0)-(9,25))
+ ├── flags: newline
├── name: :x
├── name_loc: (9,4)-(9,5) = "x"
├── receiver: ∅
├── parameters: ∅
├── body:
│ @ StatementsNode (location: (9,7)-(9,20))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ ConstantPathOrWriteNode (location: (9,7)-(9,20))
+ │ ├── flags: newline
│ ├── target:
│ │ @ ConstantPathNode (location: (9,7)-(9,14))
+ │ │ ├── flags: ∅
│ │ ├── parent:
│ │ │ @ SelfNode (location: (9,7)-(9,11))
+ │ │ │ └── flags: ∅
│ │ ├── name: :A
│ │ ├── delimiter_loc: (9,11)-(9,13) = "::"
│ │ └── name_loc: (9,13)-(9,14) = "A"
│ ├── operator_loc: (9,15)-(9,18) = "||="
│ └── value:
│ @ IntegerNode (location: (9,19)-(9,20))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── locals: []
├── def_keyword_loc: (9,0)-(9,3) = "def"
diff --git a/test/prism/snapshots/whitequark/const_scoped.txt b/test/prism/snapshots/whitequark/const_scoped.txt
index 83af4b187b..c059437a24 100644
--- a/test/prism/snapshots/whitequark/const_scoped.txt
+++ b/test/prism/snapshots/whitequark/const_scoped.txt
@@ -1,11 +1,15 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ConstantPathNode (location: (1,0)-(1,8))
+ ├── flags: newline
├── parent:
│ @ ConstantReadNode (location: (1,0)-(1,3))
+ │ ├── flags: ∅
│ └── name: :Bar
├── name: :Foo
├── delimiter_loc: (1,3)-(1,5) = "::"
diff --git a/test/prism/snapshots/whitequark/const_toplevel.txt b/test/prism/snapshots/whitequark/const_toplevel.txt
index 3d7df5defc..000239741c 100644
--- a/test/prism/snapshots/whitequark/const_toplevel.txt
+++ b/test/prism/snapshots/whitequark/const_toplevel.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ConstantPathNode (location: (1,0)-(1,5))
+ ├── flags: newline
├── parent: ∅
├── name: :Foo
├── delimiter_loc: (1,0)-(1,2) = "::"
diff --git a/test/prism/snapshots/whitequark/const_unscoped.txt b/test/prism/snapshots/whitequark/const_unscoped.txt
index 5e272e1775..8fbc92ad7c 100644
--- a/test/prism/snapshots/whitequark/const_unscoped.txt
+++ b/test/prism/snapshots/whitequark/const_unscoped.txt
@@ -1,7 +1,10 @@
@ ProgramNode (location: (1,0)-(1,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ConstantReadNode (location: (1,0)-(1,3))
+ ├── flags: newline
└── name: :Foo
diff --git a/test/prism/snapshots/whitequark/cpath.txt b/test/prism/snapshots/whitequark/cpath.txt
index e801456bf7..14f2ee6fbc 100644
--- a/test/prism/snapshots/whitequark/cpath.txt
+++ b/test/prism/snapshots/whitequark/cpath.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(3,20))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,20))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ModuleNode (location: (1,0)-(1,17))
+ │ ├── flags: newline
│ ├── locals: []
│ ├── module_keyword_loc: (1,0)-(1,6) = "module"
│ ├── constant_path:
│ │ @ ConstantPathNode (location: (1,7)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── parent: ∅
│ │ ├── name: :Foo
│ │ ├── delimiter_loc: (1,7)-(1,9) = "::"
@@ -16,12 +20,15 @@
│ ├── end_keyword_loc: (1,14)-(1,17) = "end"
│ └── name: :Foo
└── @ ModuleNode (location: (3,0)-(3,20))
+ ├── flags: newline
├── locals: []
├── module_keyword_loc: (3,0)-(3,6) = "module"
├── constant_path:
│ @ ConstantPathNode (location: (3,7)-(3,15))
+ │ ├── flags: ∅
│ ├── parent:
│ │ @ ConstantReadNode (location: (3,7)-(3,10))
+ │ │ ├── flags: ∅
│ │ └── name: :Bar
│ ├── name: :Foo
│ ├── delimiter_loc: (3,10)-(3,12) = "::"
diff --git a/test/prism/snapshots/whitequark/cvar.txt b/test/prism/snapshots/whitequark/cvar.txt
index 7847ce4495..03163eec6b 100644
--- a/test/prism/snapshots/whitequark/cvar.txt
+++ b/test/prism/snapshots/whitequark/cvar.txt
@@ -1,7 +1,10 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ClassVariableReadNode (location: (1,0)-(1,5))
+ ├── flags: newline
└── name: :@@foo
diff --git a/test/prism/snapshots/whitequark/cvasgn.txt b/test/prism/snapshots/whitequark/cvasgn.txt
index f3eceed4a4..485d6853ba 100644
--- a/test/prism/snapshots/whitequark/cvasgn.txt
+++ b/test/prism/snapshots/whitequark/cvasgn.txt
@@ -1,13 +1,16 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ClassVariableWriteNode (location: (1,0)-(1,10))
+ ├── flags: newline
├── name: :@@var
├── name_loc: (1,0)-(1,5) = "@@var"
├── value:
│ @ IntegerNode (location: (1,8)-(1,10))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 10
└── operator_loc: (1,6)-(1,7) = "="
diff --git a/test/prism/snapshots/whitequark/dedenting_heredoc.txt b/test/prism/snapshots/whitequark/dedenting_heredoc.txt
index 67896b2415..7ebfd094bc 100644
--- a/test/prism/snapshots/whitequark/dedenting_heredoc.txt
+++ b/test/prism/snapshots/whitequark/dedenting_heredoc.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(72,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(72,8))
+ ├── flags: ∅
└── body: (length: 16)
├── @ CallNode (location: (1,0)-(1,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -15,29 +17,31 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (1,2)-(1,8))
- │ │ ├── flags: mutable
+ │ │ ├── flags: static_literal, mutable
│ │ ├── opening_loc: (1,2)-(1,8) = "<<~\"E\""
│ │ ├── parts: (length: 3)
│ │ │ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (2,0)-(3,0) = " x\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: " x\n"
│ │ │ ├── @ EmbeddedStatementsNode (location: (3,2)-(3,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (3,2)-(3,4) = "\#{"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (3,4)-(3,9))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ StringNode (location: (3,4)-(3,9))
- │ │ │ │ │ ├── flags: frozen
+ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: (3,4)-(3,5) = "\""
│ │ │ │ │ ├── content_loc: (3,5)-(3,8) = " y"
│ │ │ │ │ ├── closing_loc: (3,8)-(3,9) = "\""
│ │ │ │ │ └── unescaped: " y"
│ │ │ │ └── closing_loc: (3,9)-(3,10) = "}"
│ │ │ └── @ StringNode (location: (3,10)-(4,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,10)-(4,0) = "\n"
│ │ │ ├── closing_loc: ∅
@@ -46,7 +50,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (6,0)-(6,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -61,15 +65,17 @@
│ │ ├── opening_loc: (6,2)-(6,8) = "<<~\"E\""
│ │ ├── parts: (length: 3)
│ │ │ ├── @ StringNode (location: (7,0)-(8,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (7,0)-(8,0) = " x\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: " x\n"
│ │ │ ├── @ EmbeddedStatementsNode (location: (8,2)-(8,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (8,2)-(8,4) = "\#{"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (8,4)-(8,7))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ CallNode (location: (8,4)-(8,7))
│ │ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -83,7 +89,7 @@
│ │ │ │ │ └── block: ∅
│ │ │ │ └── closing_loc: (8,7)-(8,8) = "}"
│ │ │ └── @ StringNode (location: (8,8)-(9,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (8,8)-(9,0) = "\n"
│ │ │ ├── closing_loc: ∅
@@ -92,7 +98,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (11,0)-(11,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -103,17 +109,17 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (11,2)-(11,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (11,2)-(11,6) = "<<~E"
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (12,0)-(13,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (12,0)-(13,0) = "\tx\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "x\n"
│ │ │ └── @ StringNode (location: (13,0)-(14,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (13,0)-(14,0) = " y\n"
│ │ │ ├── closing_loc: ∅
@@ -122,7 +128,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (16,0)-(16,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -133,17 +139,17 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (16,2)-(16,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (16,2)-(16,6) = "<<~E"
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (17,0)-(18,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (17,0)-(18,0) = "\tx\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "\tx\n"
│ │ │ └── @ StringNode (location: (18,0)-(19,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (18,0)-(19,0) = " y\n"
│ │ │ ├── closing_loc: ∅
@@ -152,7 +158,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (21,0)-(21,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -163,17 +169,17 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (21,2)-(21,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (21,2)-(21,6) = "<<~E"
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (22,0)-(23,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (22,0)-(23,0) = " \tx\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "x\n"
│ │ │ └── @ StringNode (location: (23,0)-(24,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (23,0)-(24,0) = " y\n"
│ │ │ ├── closing_loc: ∅
@@ -182,7 +188,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (26,0)-(26,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -193,17 +199,17 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (26,2)-(26,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (26,2)-(26,6) = "<<~E"
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (27,0)-(28,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (27,0)-(28,0) = " \tx\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "\tx\n"
│ │ │ └── @ StringNode (location: (28,0)-(29,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (28,0)-(29,0) = "\ty\n"
│ │ │ ├── closing_loc: ∅
@@ -212,7 +218,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (31,0)-(31,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -223,17 +229,17 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (31,2)-(31,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (31,2)-(31,6) = "<<~E"
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (32,0)-(33,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (32,0)-(33,0) = " x\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: " x\n"
│ │ │ └── @ StringNode (location: (33,0)-(34,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (33,0)-(34,0) = " \\\ty\n"
│ │ │ ├── closing_loc: ∅
@@ -242,7 +248,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (36,0)-(36,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -253,17 +259,17 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (36,2)-(36,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (36,2)-(36,6) = "<<~E"
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (37,0)-(38,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (37,0)-(38,0) = " x\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: " x\n"
│ │ │ └── @ StringNode (location: (38,0)-(39,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (38,0)-(39,0) = " \\ y\n"
│ │ │ ├── closing_loc: ∅
@@ -272,7 +278,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (41,0)-(41,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -291,7 +297,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (44,0)-(44,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -302,23 +308,23 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (44,2)-(44,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (44,2)-(44,6) = "<<~E"
│ │ ├── parts: (length: 3)
│ │ │ ├── @ StringNode (location: (45,0)-(46,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (45,0)-(46,0) = " x\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: " x\n"
│ │ │ ├── @ StringNode (location: (46,0)-(47,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (46,0)-(47,0) = "\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "\n"
│ │ │ └── @ StringNode (location: (47,0)-(48,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (47,0)-(48,0) = "y\n"
│ │ │ ├── closing_loc: ∅
@@ -327,7 +333,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (50,0)-(50,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -338,23 +344,23 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (50,2)-(50,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (50,2)-(50,6) = "<<~E"
│ │ ├── parts: (length: 3)
│ │ │ ├── @ StringNode (location: (51,0)-(52,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (51,0)-(52,0) = " x\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "x\n"
│ │ │ ├── @ StringNode (location: (52,0)-(53,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (52,0)-(53,0) = " \n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: " \n"
│ │ │ └── @ StringNode (location: (53,0)-(54,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (53,0)-(54,0) = " y\n"
│ │ │ ├── closing_loc: ∅
@@ -363,7 +369,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (56,0)-(56,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -374,17 +380,17 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (56,2)-(56,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (56,2)-(56,6) = "<<~E"
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (57,0)-(58,0))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (57,0)-(58,0) = " x\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "x\n"
│ │ │ └── @ StringNode (location: (58,0)-(59,0))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (58,0)-(59,0) = " y\n"
│ │ │ ├── closing_loc: ∅
@@ -393,7 +399,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (61,0)-(61,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -412,7 +418,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (65,0)-(65,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -431,7 +437,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (69,0)-(69,6))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :p
@@ -450,7 +456,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (72,0)-(72,8))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :p
@@ -461,6 +467,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ InterpolatedXStringNode (location: (72,2)-(72,8))
+ │ ├── flags: ∅
│ ├── opening_loc: (72,2)-(72,8) = "<<~`E`"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (73,0)-(74,0))
@@ -470,9 +477,11 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " x\n"
│ │ ├── @ EmbeddedStatementsNode (location: (74,2)-(74,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (74,2)-(74,4) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (74,4)-(74,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (74,4)-(74,7))
│ │ │ │ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt b/test/prism/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt
index 8d093fdab6..6626d0a330 100644
--- a/test/prism/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt
+++ b/test/prism/snapshots/whitequark/dedenting_interpolating_heredoc_fake_line_continuation.txt
@@ -1,20 +1,22 @@
@ 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, static_literal
├── opening_loc: (1,0)-(1,8) = "<<~'FOO'"
├── parts: (length: 2)
│ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (2,0)-(3,0) = " baz\\\\\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "baz\\\\\n"
│ └── @ StringNode (location: (3,0)-(4,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (3,0)-(4,0) = " qux\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt b/test/prism/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt
index d43d313e6b..ee985b46d6 100644
--- a/test/prism/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt
+++ b/test/prism/snapshots/whitequark/dedenting_non_interpolating_heredoc_line_continuation.txt
@@ -1,20 +1,22 @@
@ 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, static_literal
├── opening_loc: (1,0)-(1,8) = "<<~'FOO'"
├── parts: (length: 2)
│ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (2,0)-(3,0) = " baz\\\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "baz\\\n"
│ └── @ StringNode (location: (3,0)-(4,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (3,0)-(4,0) = " qux\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/def.txt b/test/prism/snapshots/whitequark/def.txt
index d5e1139c4d..937d44a9d5 100644
--- a/test/prism/snapshots/whitequark/def.txt
+++ b/test/prism/snapshots/whitequark/def.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(11,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(11,14))
+ ├── flags: ∅
└── body: (length: 6)
├── @ DefNode (location: (1,0)-(1,14))
+ │ ├── flags: newline
│ ├── name: :BEGIN
│ ├── name_loc: (1,4)-(1,9) = "BEGIN"
│ ├── receiver: ∅
@@ -17,6 +20,7 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (1,11)-(1,14) = "end"
├── @ DefNode (location: (3,0)-(3,12))
+ │ ├── flags: newline
│ ├── name: :END
│ ├── name_loc: (3,4)-(3,7) = "END"
│ ├── receiver: ∅
@@ -30,6 +34,7 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (3,9)-(3,12) = "end"
├── @ DefNode (location: (5,0)-(5,15))
+ │ ├── flags: newline
│ ├── name: :String
│ ├── name_loc: (5,4)-(5,10) = "String"
│ ├── receiver: ∅
@@ -43,6 +48,7 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (5,12)-(5,15) = "end"
├── @ DefNode (location: (7,0)-(7,16))
+ │ ├── flags: newline
│ ├── name: :String=
│ ├── name_loc: (7,4)-(7,11) = "String="
│ ├── receiver: ∅
@@ -56,6 +62,7 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (7,13)-(7,16) = "end"
├── @ DefNode (location: (9,0)-(9,12))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (9,4)-(9,7) = "foo"
│ ├── receiver: ∅
@@ -69,6 +76,7 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (9,9)-(9,12) = "end"
└── @ DefNode (location: (11,0)-(11,14))
+ ├── flags: newline
├── name: :until
├── name_loc: (11,4)-(11,9) = "until"
├── receiver: ∅
diff --git a/test/prism/snapshots/whitequark/defined.txt b/test/prism/snapshots/whitequark/defined.txt
index 5e05870b21..77e102e539 100644
--- a/test/prism/snapshots/whitequark/defined.txt
+++ b/test/prism/snapshots/whitequark/defined.txt
@@ -1,16 +1,21 @@
@ ProgramNode (location: (1,0)-(5,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,13))
+ ├── flags: ∅
└── body: (length: 3)
├── @ DefinedNode (location: (1,0)-(1,13))
+ │ ├── flags: newline
│ ├── lparen_loc: ∅
│ ├── value:
│ │ @ InstanceVariableReadNode (location: (1,9)-(1,13))
+ │ │ ├── flags: ∅
│ │ └── name: :@foo
│ ├── rparen_loc: ∅
│ └── keyword_loc: (1,0)-(1,8) = "defined?"
├── @ DefinedNode (location: (3,0)-(3,12))
+ │ ├── flags: newline
│ ├── lparen_loc: ∅
│ ├── value:
│ │ @ CallNode (location: (3,9)-(3,12))
@@ -26,6 +31,7 @@
│ ├── rparen_loc: ∅
│ └── keyword_loc: (3,0)-(3,8) = "defined?"
└── @ DefinedNode (location: (5,0)-(5,13))
+ ├── flags: newline
├── lparen_loc: (5,8)-(5,9) = "("
├── value:
│ @ CallNode (location: (5,9)-(5,12))
diff --git a/test/prism/snapshots/whitequark/defs.txt b/test/prism/snapshots/whitequark/defs.txt
index 616cca6155..92b9e38b62 100644
--- a/test/prism/snapshots/whitequark/defs.txt
+++ b/test/prism/snapshots/whitequark/defs.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(9,18))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(9,18))
+ ├── flags: ∅
└── body: (length: 5)
├── @ DefNode (location: (1,0)-(1,18))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (1,10)-(1,13) = "foo"
│ ├── receiver:
│ │ @ ParenthesesNode (location: (1,4)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ CallNode (location: (1,5)-(1,8))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -31,10 +35,12 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (1,15)-(1,18) = "end"
├── @ DefNode (location: (3,0)-(3,19))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (3,11)-(3,14) = "foo"
│ ├── receiver:
│ │ @ ConstantReadNode (location: (3,4)-(3,10))
+ │ │ ├── flags: ∅
│ │ └── name: :String
│ ├── parameters: ∅
│ ├── body: ∅
@@ -46,10 +52,12 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (3,16)-(3,19) = "end"
├── @ DefNode (location: (5,0)-(5,20))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (5,12)-(5,15) = "foo"
│ ├── receiver:
│ │ @ ConstantReadNode (location: (5,4)-(5,10))
+ │ │ ├── flags: ∅
│ │ └── name: :String
│ ├── parameters: ∅
│ ├── body: ∅
@@ -61,10 +69,12 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (5,17)-(5,20) = "end"
├── @ DefNode (location: (7,0)-(7,17))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (7,9)-(7,12) = "foo"
│ ├── receiver:
│ │ @ SelfNode (location: (7,4)-(7,8))
+ │ │ └── flags: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
@@ -75,10 +85,12 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (7,14)-(7,17) = "end"
└── @ DefNode (location: (9,0)-(9,18))
+ ├── flags: newline
├── name: :foo
├── name_loc: (9,10)-(9,13) = "foo"
├── receiver:
│ @ SelfNode (location: (9,4)-(9,8))
+ │ └── flags: ∅
├── parameters: ∅
├── body: ∅
├── locals: []
diff --git a/test/prism/snapshots/whitequark/empty_stmt.txt b/test/prism/snapshots/whitequark/empty_stmt.txt
index 3a21ce5559..5756285aaf 100644
--- a/test/prism/snapshots/whitequark/empty_stmt.txt
+++ b/test/prism/snapshots/whitequark/empty_stmt.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/whitequark/endless_comparison_method.txt b/test/prism/snapshots/whitequark/endless_comparison_method.txt
index 28ec3843bb..a32a4dff52 100644
--- a/test/prism/snapshots/whitequark/endless_comparison_method.txt
+++ b/test/prism/snapshots/whitequark/endless_comparison_method.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(11,28))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(11,28))
+ ├── flags: ∅
└── body: (length: 6)
├── @ DefNode (location: (1,0)-(1,28))
+ │ ├── flags: newline
│ ├── name: :!=
│ ├── name_loc: (1,4)-(1,6) = "!="
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,7)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,7)-(1,12))
│ │ │ ├── flags: ∅
@@ -21,9 +25,10 @@
│ │ └── block: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,16)-(1,28))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,16)-(1,28))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :do_something
@@ -40,11 +45,13 @@
│ ├── equal_loc: (1,14)-(1,15) = "="
│ └── end_keyword_loc: ∅
├── @ DefNode (location: (3,0)-(3,28))
+ │ ├── flags: newline
│ ├── name: :!=
│ ├── name_loc: (3,4)-(3,6) = "!="
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (3,7)-(3,12))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (3,7)-(3,12))
│ │ │ ├── flags: ∅
@@ -57,9 +64,10 @@
│ │ └── block: ∅
│ ├── body:
│ │ @ StatementsNode (location: (3,16)-(3,28))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (3,16)-(3,28))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :do_something
@@ -76,11 +84,13 @@
│ ├── equal_loc: (3,14)-(3,15) = "="
│ └── end_keyword_loc: ∅
├── @ DefNode (location: (5,0)-(5,28))
+ │ ├── flags: newline
│ ├── name: :<=
│ ├── name_loc: (5,4)-(5,6) = "<="
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (5,7)-(5,12))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (5,7)-(5,12))
│ │ │ ├── flags: ∅
@@ -93,9 +103,10 @@
│ │ └── block: ∅
│ ├── body:
│ │ @ StatementsNode (location: (5,16)-(5,28))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (5,16)-(5,28))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :do_something
@@ -112,11 +123,13 @@
│ ├── equal_loc: (5,14)-(5,15) = "="
│ └── end_keyword_loc: ∅
├── @ DefNode (location: (7,0)-(7,28))
+ │ ├── flags: newline
│ ├── name: :==
│ ├── name_loc: (7,4)-(7,6) = "=="
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (7,7)-(7,12))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (7,7)-(7,12))
│ │ │ ├── flags: ∅
@@ -129,9 +142,10 @@
│ │ └── block: ∅
│ ├── body:
│ │ @ StatementsNode (location: (7,16)-(7,28))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (7,16)-(7,28))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :do_something
@@ -148,11 +162,13 @@
│ ├── equal_loc: (7,14)-(7,15) = "="
│ └── end_keyword_loc: ∅
├── @ DefNode (location: (9,0)-(9,29))
+ │ ├── flags: newline
│ ├── name: :===
│ ├── name_loc: (9,4)-(9,7) = "==="
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (9,8)-(9,13))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (9,8)-(9,13))
│ │ │ ├── flags: ∅
@@ -165,9 +181,10 @@
│ │ └── block: ∅
│ ├── body:
│ │ @ StatementsNode (location: (9,17)-(9,29))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (9,17)-(9,29))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :do_something
@@ -184,11 +201,13 @@
│ ├── equal_loc: (9,15)-(9,16) = "="
│ └── end_keyword_loc: ∅
└── @ DefNode (location: (11,0)-(11,28))
+ ├── flags: newline
├── name: :>=
├── 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) = "<<HERE"
│ ├── content_loc: (7,0)-(9,0) = "foo\nbar\n"
│ ├── closing_loc: (9,0)-(10,0) = "HERE\n"
│ └── unescaped: "foo\nbar\n"
└── @ XStringNode (location: (11,0)-(11,8))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (11,0)-(11,8) = "<<`HERE`"
├── content_loc: (12,0)-(14,0) = "foo\nbar\n"
├── closing_loc: (14,0)-(15,0) = "HERE\n"
diff --git a/test/prism/snapshots/whitequark/if.txt b/test/prism/snapshots/whitequark/if.txt
index 809a100f8c..69daec96f8 100644
--- a/test/prism/snapshots/whitequark/if.txt
+++ b/test/prism/snapshots/whitequark/if.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(3,16))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,16))
+ ├── flags: ∅
└── body: (length: 2)
├── @ IfNode (location: (1,0)-(1,20))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (1,0)-(1,2) = "if"
│ ├── predicate:
│ │ @ CallNode (location: (1,3)-(1,6))
@@ -19,9 +22,10 @@
│ ├── then_keyword_loc: (1,7)-(1,11) = "then"
│ ├── statements:
│ │ @ StatementsNode (location: (1,12)-(1,15))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,12)-(1,15))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
@@ -33,6 +37,7 @@
│ ├── consequent: ∅
│ └── end_keyword_loc: (1,17)-(1,20) = "end"
└── @ IfNode (location: (3,0)-(3,16))
+ ├── flags: newline
├── if_keyword_loc: (3,0)-(3,2) = "if"
├── predicate:
│ @ CallNode (location: (3,3)-(3,6))
@@ -48,9 +53,10 @@
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (3,8)-(3,11))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (3,8)-(3,11))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/if_else.txt b/test/prism/snapshots/whitequark/if_else.txt
index c7dab47f13..f40fd25ff4 100644
--- a/test/prism/snapshots/whitequark/if_else.txt
+++ b/test/prism/snapshots/whitequark/if_else.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(3,26))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,26))
+ ├── flags: ∅
└── body: (length: 2)
├── @ IfNode (location: (1,0)-(1,30))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (1,0)-(1,2) = "if"
│ ├── predicate:
│ │ @ CallNode (location: (1,3)-(1,6))
@@ -19,9 +22,10 @@
│ ├── then_keyword_loc: (1,7)-(1,11) = "then"
│ ├── statements:
│ │ @ StatementsNode (location: (1,12)-(1,15))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,12)-(1,15))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
@@ -32,12 +36,14 @@
│ │ └── block: ∅
│ ├── consequent:
│ │ @ ElseNode (location: (1,17)-(1,30))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (1,17)-(1,21) = "else"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,22)-(1,25))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,22)-(1,25))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :baz
@@ -49,6 +55,7 @@
│ │ └── end_keyword_loc: (1,27)-(1,30) = "end"
│ └── end_keyword_loc: (1,27)-(1,30) = "end"
└── @ IfNode (location: (3,0)-(3,26))
+ ├── flags: newline
├── if_keyword_loc: (3,0)-(3,2) = "if"
├── predicate:
│ @ CallNode (location: (3,3)-(3,6))
@@ -64,9 +71,10 @@
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (3,8)-(3,11))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (3,8)-(3,11))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
@@ -77,12 +85,14 @@
│ └── block: ∅
├── consequent:
│ @ ElseNode (location: (3,13)-(3,26))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (3,13)-(3,17) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (3,18)-(3,21))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (3,18)-(3,21))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :baz
diff --git a/test/prism/snapshots/whitequark/if_elsif.txt b/test/prism/snapshots/whitequark/if_elsif.txt
index 1bd1ab7f42..6cc88a8727 100644
--- a/test/prism/snapshots/whitequark/if_elsif.txt
+++ b/test/prism/snapshots/whitequark/if_elsif.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,38))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,38))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,38))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ CallNode (location: (1,3)-(1,6))
@@ -19,9 +22,10 @@
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (1,8)-(1,11))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,8)-(1,11))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
@@ -32,6 +36,7 @@
│ └── block: ∅
├── consequent:
│ @ IfNode (location: (1,13)-(1,38))
+ │ ├── flags: newline
│ ├── if_keyword_loc: (1,13)-(1,18) = "elsif"
│ ├── predicate:
│ │ @ CallNode (location: (1,19)-(1,22))
@@ -47,18 +52,21 @@
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (1,24)-(1,25))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (1,24)-(1,25))
- │ │ ├── flags: decimal
+ │ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── consequent:
│ │ @ ElseNode (location: (1,27)-(1,38))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (1,27)-(1,31) = "else"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,32)-(1,33))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,32)-(1,33))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 2
│ │ └── end_keyword_loc: (1,35)-(1,38) = "end"
│ └── end_keyword_loc: (1,35)-(1,38) = "end"
diff --git a/test/prism/snapshots/whitequark/if_masgn__24.txt b/test/prism/snapshots/whitequark/if_masgn__24.txt
index c76a93574d..885c2b6eec 100644
--- a/test/prism/snapshots/whitequark/if_masgn__24.txt
+++ b/test/prism/snapshots/whitequark/if_masgn__24.txt
@@ -1,21 +1,29 @@
@ ProgramNode (location: (1,0)-(1,20))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(1,20))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,20))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ ParenthesesNode (location: (1,3)-(1,15))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,4)-(1,14))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ MultiWriteNode (location: (1,4)-(1,14))
+ │ │ ├── flags: newline
│ │ ├── 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: ∅
diff --git a/test/prism/snapshots/whitequark/if_mod.txt b/test/prism/snapshots/whitequark/if_mod.txt
index 241918f020..a97438ba28 100644
--- a/test/prism/snapshots/whitequark/if_mod.txt
+++ b/test/prism/snapshots/whitequark/if_mod.txt
@@ -1,9 +1,12 @@
@ 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,4)-(1,6) = "if"
├── predicate:
│ @ CallNode (location: (1,7)-(1,10))
@@ -19,9 +22,10 @@
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (1,0)-(1,3))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,0)-(1,3))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/if_nl_then.txt b/test/prism/snapshots/whitequark/if_nl_then.txt
index fbbafe7390..7a6140bcc8 100644
--- a/test/prism/snapshots/whitequark/if_nl_then.txt
+++ b/test/prism/snapshots/whitequark/if_nl_then.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(2,12))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(2,12))
+ ├── flags: newline
├── if_keyword_loc: (1,0)-(1,2) = "if"
├── predicate:
│ @ CallNode (location: (1,3)-(1,6))
@@ -19,9 +22,10 @@
├── then_keyword_loc: (2,0)-(2,4) = "then"
├── statements:
│ @ StatementsNode (location: (2,5)-(2,8))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (2,5)-(2,8))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/int.txt b/test/prism/snapshots/whitequark/int.txt
index 6fee32f117..b62b287a98 100644
--- a/test/prism/snapshots/whitequark/int.txt
+++ b/test/prism/snapshots/whitequark/int.txt
@@ -1,14 +1,16 @@
@ ProgramNode (location: (1,0)-(5,2))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,2))
+ ├── flags: ∅
└── body: (length: 3)
├── @ IntegerNode (location: (1,0)-(1,3))
- │ ├── flags: decimal
+ │ ├── flags: newline, static_literal, decimal
│ └── value: 42
├── @ IntegerNode (location: (3,0)-(3,3))
- │ ├── flags: decimal
+ │ ├── flags: newline, static_literal, decimal
│ └── value: -42
└── @ IntegerNode (location: (5,0)-(5,2))
- ├── flags: decimal
+ ├── flags: newline, static_literal, decimal
└── value: 42
diff --git a/test/prism/snapshots/whitequark/int___LINE__.txt b/test/prism/snapshots/whitequark/int___LINE__.txt
index bf2ea47102..fa4c249e86 100644
--- a/test/prism/snapshots/whitequark/int___LINE__.txt
+++ b/test/prism/snapshots/whitequark/int___LINE__.txt
@@ -1,6 +1,9 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ SourceLineNode (location: (1,0)-(1,8))
+ └── flags: newline, static_literal
diff --git a/test/prism/snapshots/whitequark/interp_digit_var.txt b/test/prism/snapshots/whitequark/interp_digit_var.txt
index 09d9098105..7e8a3a2f31 100644
--- a/test/prism/snapshots/whitequark/interp_digit_var.txt
+++ b/test/prism/snapshots/whitequark/interp_digit_var.txt
@@ -1,25 +1,27 @@
@ ProgramNode (location: (1,1)-(85,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,1)-(85,9))
+ ├── flags: ∅
└── body: (length: 38)
├── @ StringNode (location: (1,1)-(1,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,1)-(1,2) = "\""
│ ├── content_loc: (1,2)-(1,5) = "\#@1"
│ ├── closing_loc: (1,5)-(1,6) = "\""
│ └── unescaped: "\#@1"
├── @ StringNode (location: (3,1)-(3,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (3,1)-(3,2) = "\""
│ ├── content_loc: (3,2)-(3,6) = "\#@@1"
│ ├── closing_loc: (3,6)-(3,7) = "\""
│ └── unescaped: "\#@@1"
├── @ ArrayNode (location: (5,1)-(5,8))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (5,4)-(5,7))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (5,4)-(5,7) = "\#@1"
│ │ ├── closing_loc: ∅
@@ -27,10 +29,10 @@
│ ├── opening_loc: (5,1)-(5,4) = "%I["
│ └── closing_loc: (5,7)-(5,8) = "]"
├── @ ArrayNode (location: (7,1)-(7,9))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (7,4)-(7,8))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (7,4)-(7,8) = "\#@@1"
│ │ ├── closing_loc: ∅
@@ -38,19 +40,19 @@
│ ├── opening_loc: (7,1)-(7,4) = "%I["
│ └── closing_loc: (7,8)-(7,9) = "]"
├── @ StringNode (location: (9,1)-(9,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (9,1)-(9,4) = "%Q{"
│ ├── content_loc: (9,4)-(9,7) = "\#@1"
│ ├── closing_loc: (9,7)-(9,8) = "}"
│ └── unescaped: "\#@1"
├── @ StringNode (location: (11,1)-(11,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (11,1)-(11,4) = "%Q{"
│ ├── content_loc: (11,4)-(11,8) = "\#@@1"
│ ├── closing_loc: (11,8)-(11,9) = "}"
│ └── unescaped: "\#@@1"
├── @ ArrayNode (location: (13,1)-(13,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 1)
│ │ └── @ StringNode (location: (13,4)-(13,7))
│ │ ├── flags: ∅
@@ -61,7 +63,7 @@
│ ├── opening_loc: (13,1)-(13,4) = "%W["
│ └── closing_loc: (13,7)-(13,8) = "]"
├── @ ArrayNode (location: (15,1)-(15,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 1)
│ │ └── @ StringNode (location: (15,4)-(15,8))
│ │ ├── flags: ∅
@@ -72,10 +74,10 @@
│ ├── opening_loc: (15,1)-(15,4) = "%W["
│ └── closing_loc: (15,8)-(15,9) = "]"
├── @ ArrayNode (location: (17,1)-(17,10))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (17,5)-(17,8))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (17,5)-(17,8) = "\#@1"
│ │ ├── closing_loc: ∅
@@ -83,10 +85,10 @@
│ ├── opening_loc: (17,1)-(17,4) = "%i["
│ └── closing_loc: (17,9)-(17,10) = "]"
├── @ ArrayNode (location: (19,1)-(19,11))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (19,5)-(19,9))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (19,5)-(19,9) = "\#@@1"
│ │ ├── closing_loc: ∅
@@ -94,43 +96,43 @@
│ ├── opening_loc: (19,1)-(19,4) = "%i["
│ └── closing_loc: (19,10)-(19,11) = "]"
├── @ StringNode (location: (21,1)-(21,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (21,1)-(21,4) = "%q{"
│ ├── content_loc: (21,4)-(21,7) = "\#@1"
│ ├── closing_loc: (21,7)-(21,8) = "}"
│ └── unescaped: "\#@1"
├── @ StringNode (location: (23,1)-(23,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (23,1)-(23,4) = "%q{"
│ ├── content_loc: (23,4)-(23,8) = "\#@@1"
│ ├── closing_loc: (23,8)-(23,9) = "}"
│ └── unescaped: "\#@@1"
├── @ RegularExpressionNode (location: (25,1)-(25,8))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (25,1)-(25,4) = "%r{"
│ ├── content_loc: (25,4)-(25,7) = "\#@1"
│ ├── closing_loc: (25,7)-(25,8) = "}"
│ └── unescaped: "\#@1"
├── @ RegularExpressionNode (location: (27,1)-(27,9))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (27,1)-(27,4) = "%r{"
│ ├── content_loc: (27,4)-(27,8) = "\#@@1"
│ ├── closing_loc: (27,8)-(27,9) = "}"
│ └── unescaped: "\#@@1"
├── @ SymbolNode (location: (29,1)-(29,8))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (29,1)-(29,4) = "%s{"
│ ├── value_loc: (29,4)-(29,7) = "\#@1"
│ ├── closing_loc: (29,7)-(29,8) = "}"
│ └── unescaped: "\#@1"
├── @ SymbolNode (location: (31,1)-(31,9))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (31,1)-(31,4) = "%s{"
│ ├── value_loc: (31,4)-(31,8) = "\#@@1"
│ ├── closing_loc: (31,8)-(31,9) = "}"
│ └── unescaped: "\#@@1"
├── @ ArrayNode (location: (33,1)-(33,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 1)
│ │ └── @ StringNode (location: (33,5)-(33,8))
│ │ ├── flags: ∅
@@ -141,7 +143,7 @@
│ ├── opening_loc: (33,1)-(33,4) = "%w["
│ └── closing_loc: (33,9)-(33,10) = "]"
├── @ ArrayNode (location: (35,1)-(35,11))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 1)
│ │ └── @ StringNode (location: (35,5)-(35,9))
│ │ ├── flags: ∅
@@ -152,121 +154,121 @@
│ ├── opening_loc: (35,1)-(35,4) = "%w["
│ └── closing_loc: (35,10)-(35,11) = "]"
├── @ XStringNode (location: (37,1)-(37,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (37,1)-(37,4) = "%x{"
│ ├── content_loc: (37,4)-(37,7) = "\#@1"
│ ├── closing_loc: (37,7)-(37,8) = "}"
│ └── unescaped: "\#@1"
├── @ XStringNode (location: (39,1)-(39,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (39,1)-(39,4) = "%x{"
│ ├── content_loc: (39,4)-(39,8) = "\#@@1"
│ ├── closing_loc: (39,8)-(39,9) = "}"
│ └── unescaped: "\#@@1"
├── @ StringNode (location: (41,1)-(41,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (41,1)-(41,3) = "%{"
│ ├── content_loc: (41,3)-(41,6) = "\#@1"
│ ├── closing_loc: (41,6)-(41,7) = "}"
│ └── unescaped: "\#@1"
├── @ StringNode (location: (43,1)-(43,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (43,1)-(43,3) = "%{"
│ ├── content_loc: (43,3)-(43,7) = "\#@@1"
│ ├── closing_loc: (43,7)-(43,8) = "}"
│ └── unescaped: "\#@@1"
├── @ StringNode (location: (45,1)-(45,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (45,1)-(45,2) = "'"
│ ├── content_loc: (45,2)-(45,5) = "\#@1"
│ ├── closing_loc: (45,5)-(45,6) = "'"
│ └── unescaped: "\#@1"
├── @ StringNode (location: (47,1)-(47,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (47,1)-(47,2) = "'"
│ ├── content_loc: (47,2)-(47,6) = "\#@@1"
│ ├── closing_loc: (47,6)-(47,7) = "'"
│ └── unescaped: "\#@@1"
├── @ RegularExpressionNode (location: (49,1)-(49,6))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (49,1)-(49,2) = "/"
│ ├── content_loc: (49,2)-(49,5) = "\#@1"
│ ├── closing_loc: (49,5)-(49,6) = "/"
│ └── unescaped: "\#@1"
├── @ RegularExpressionNode (location: (51,1)-(51,7))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (51,1)-(51,2) = "/"
│ ├── content_loc: (51,2)-(51,6) = "\#@@1"
│ ├── closing_loc: (51,6)-(51,7) = "/"
│ └── unescaped: "\#@@1"
├── @ SymbolNode (location: (53,1)-(53,7))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (53,1)-(53,3) = ":\""
│ ├── value_loc: (53,3)-(53,6) = "\#@1"
│ ├── closing_loc: (53,6)-(53,7) = "\""
│ └── unescaped: "\#@1"
├── @ SymbolNode (location: (55,1)-(55,8))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (55,1)-(55,3) = ":\""
│ ├── value_loc: (55,3)-(55,7) = "\#@@1"
│ ├── closing_loc: (55,7)-(55,8) = "\""
│ └── unescaped: "\#@@1"
├── @ SymbolNode (location: (57,1)-(57,7))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (57,1)-(57,3) = ":'"
│ ├── value_loc: (57,3)-(57,6) = "\#@1"
│ ├── closing_loc: (57,6)-(57,7) = "'"
│ └── unescaped: "\#@1"
├── @ SymbolNode (location: (59,1)-(59,8))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (59,1)-(59,3) = ":'"
│ ├── value_loc: (59,3)-(59,7) = "\#@@1"
│ ├── closing_loc: (59,7)-(59,8) = "'"
│ └── unescaped: "\#@@1"
├── @ XStringNode (location: (61,1)-(61,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (61,1)-(61,2) = "`"
│ ├── content_loc: (61,2)-(61,5) = "\#@1"
│ ├── closing_loc: (61,5)-(61,6) = "`"
│ └── unescaped: "\#@1"
├── @ XStringNode (location: (63,1)-(63,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (63,1)-(63,2) = "`"
│ ├── content_loc: (63,2)-(63,6) = "\#@@1"
│ ├── closing_loc: (63,6)-(63,7) = "`"
│ └── unescaped: "\#@@1"
├── @ StringNode (location: (65,0)-(65,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (65,0)-(65,9) = "<<-\"HERE\""
│ ├── content_loc: (66,0)-(67,0) = "\#@1\n"
│ ├── closing_loc: (67,0)-(68,0) = "HERE\n"
│ └── unescaped: "\#@1\n"
├── @ StringNode (location: (69,0)-(69,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (69,0)-(69,9) = "<<-\"HERE\""
│ ├── content_loc: (70,0)-(71,0) = "\#@@1\n"
│ ├── closing_loc: (71,0)-(72,0) = "HERE\n"
│ └── unescaped: "\#@@1\n"
├── @ StringNode (location: (73,0)-(73,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (73,0)-(73,9) = "<<-'HERE'"
│ ├── content_loc: (74,0)-(75,0) = "\#@1\n"
│ ├── closing_loc: (75,0)-(76,0) = "HERE\n"
│ └── unescaped: "\#@1\n"
├── @ StringNode (location: (77,0)-(77,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (77,0)-(77,9) = "<<-'HERE'"
│ ├── content_loc: (78,0)-(79,0) = "\#@@1\n"
│ ├── closing_loc: (79,0)-(80,0) = "HERE\n"
│ └── unescaped: "\#@@1\n"
├── @ XStringNode (location: (81,0)-(81,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (81,0)-(81,9) = "<<-`HERE`"
│ ├── content_loc: (82,0)-(83,0) = "\#@1\n"
│ ├── closing_loc: (83,0)-(84,0) = "HERE\n"
│ └── unescaped: "\#@1\n"
└── @ XStringNode (location: (85,0)-(85,9))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (85,0)-(85,9) = "<<-`HERE`"
├── content_loc: (86,0)-(87,0) = "\#@@1\n"
├── closing_loc: (87,0)-(88,0) = "HERE\n"
diff --git a/test/prism/snapshots/whitequark/ivar.txt b/test/prism/snapshots/whitequark/ivar.txt
index 9c70e6e959..6a0a03dd5e 100644
--- a/test/prism/snapshots/whitequark/ivar.txt
+++ b/test/prism/snapshots/whitequark/ivar.txt
@@ -1,7 +1,10 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InstanceVariableReadNode (location: (1,0)-(1,4))
+ ├── flags: newline
└── name: :@foo
diff --git a/test/prism/snapshots/whitequark/ivasgn.txt b/test/prism/snapshots/whitequark/ivasgn.txt
index 2b57f39554..cc16bdd4e6 100644
--- a/test/prism/snapshots/whitequark/ivasgn.txt
+++ b/test/prism/snapshots/whitequark/ivasgn.txt
@@ -1,13 +1,16 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InstanceVariableWriteNode (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/keyword_argument_omission.txt b/test/prism/snapshots/whitequark/keyword_argument_omission.txt
index 446b45b56b..ac32216061 100644
--- a/test/prism/snapshots/whitequark/keyword_argument_omission.txt
+++ b/test/prism/snapshots/whitequark/keyword_argument_omission.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: :foo
@@ -18,15 +20,17 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 2)
│ ├── @ AssocNode (location: (1,4)-(1,6))
+ │ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,4)-(1,6))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,4)-(1,5) = "a"
│ │ │ ├── closing_loc: (1,5)-(1,6) = ":"
│ │ │ └── unescaped: "a"
│ │ ├── value:
│ │ │ @ ImplicitNode (location: (1,4)-(1,6))
+ │ │ │ ├── flags: ∅
│ │ │ └── value:
│ │ │ @ CallNode (location: (1,4)-(1,6))
│ │ │ ├── flags: ignore_visibility
@@ -40,15 +44,17 @@
│ │ │ └── block: ∅
│ │ └── operator_loc: ∅
│ └── @ AssocNode (location: (1,8)-(1,10))
+ │ ├── flags: ∅
│ ├── key:
│ │ @ SymbolNode (location: (1,8)-(1,10))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,8)-(1,9) = "b"
│ │ ├── closing_loc: (1,9)-(1,10) = ":"
│ │ └── unescaped: "b"
│ ├── value:
│ │ @ ImplicitNode (location: (1,8)-(1,10))
+ │ │ ├── flags: ∅
│ │ └── value:
│ │ @ CallNode (location: (1,8)-(1,10))
│ │ ├── flags: ignore_visibility
diff --git a/test/prism/snapshots/whitequark/kwarg.txt b/test/prism/snapshots/whitequark/kwarg.txt
index 5969402356..aaa55b680a 100644
--- a/test/prism/snapshots/whitequark/kwarg.txt
+++ b/test/prism/snapshots/whitequark/kwarg.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,16))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,16))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,16))
+ ├── 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/whitequark/kwbegin_compstmt.txt b/test/prism/snapshots/whitequark/kwbegin_compstmt.txt
index 376e628f8e..690c790966 100644
--- a/test/prism/snapshots/whitequark/kwbegin_compstmt.txt
+++ b/test/prism/snapshots/whitequark/kwbegin_compstmt.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(1,20))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,20))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,20))
+ ├── flags: newline
├── begin_keyword_loc: (1,0)-(1,5) = "begin"
├── statements:
│ @ StatementsNode (location: (1,6)-(1,16))
+ │ ├── flags: ∅
│ └── body: (length: 2)
│ ├── @ CallNode (location: (1,6)-(1,10))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo!
@@ -19,7 +23,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── @ CallNode (location: (1,12)-(1,16))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar!
diff --git a/test/prism/snapshots/whitequark/kwnilarg.txt b/test/prism/snapshots/whitequark/kwnilarg.txt
index 492f817696..028fe07e74 100644
--- a/test/prism/snapshots/whitequark/kwnilarg.txt
+++ b/test/prism/snapshots/whitequark/kwnilarg.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(5,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,13))
+ ├── flags: ∅
└── body: (length: 3)
├── @ LambdaNode (location: (1,0)-(1,12))
+ │ ├── flags: newline
│ ├── locals: []
│ ├── operator_loc: (1,0)-(1,2) = "->"
│ ├── opening_loc: (1,10)-(1,11) = "{"
│ ├── closing_loc: (1,11)-(1,12) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,2)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (1,3)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
@@ -19,6 +24,7 @@
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest:
│ │ │ │ @ NoKeywordsParameterNode (location: (1,3)-(1,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (1,3)-(1,5) = "**"
│ │ │ │ └── keyword_loc: (1,5)-(1,8) = "nil"
│ │ │ └── block: ∅
@@ -27,11 +33,13 @@
│ │ └── closing_loc: (1,8)-(1,9) = ")"
│ └── body: ∅
├── @ DefNode (location: (3,0)-(3,17))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (3,4)-(3,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (3,6)-(3,11))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -39,6 +47,7 @@
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ NoKeywordsParameterNode (location: (3,6)-(3,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (3,6)-(3,8) = "**"
│ │ │ └── keyword_loc: (3,8)-(3,11) = "nil"
│ │ └── block: ∅
@@ -51,7 +60,7 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (3,14)-(3,17) = "end"
└── @ CallNode (location: (5,0)-(5,13))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :m
@@ -61,11 +70,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (5,2)-(5,13))
+ ├── flags: ∅
├── locals: []
├── parameters:
│ @ BlockParametersNode (location: (5,4)-(5,11))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (5,5)-(5,10))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -73,6 +85,7 @@
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ NoKeywordsParameterNode (location: (5,5)-(5,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (5,5)-(5,7) = "**"
│ │ │ └── keyword_loc: (5,7)-(5,10) = "nil"
│ │ └── block: ∅
diff --git a/test/prism/snapshots/whitequark/kwoptarg.txt b/test/prism/snapshots/whitequark/kwoptarg.txt
index 9c2c4f9c4c..010d82c930 100644
--- a/test/prism/snapshots/whitequark/kwoptarg.txt
+++ b/test/prism/snapshots/whitequark/kwoptarg.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,18))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,18))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,18))
+ ├── 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: ∅
@@ -20,7 +24,7 @@
│ │ ├── name_loc: (1,6)-(1,10) = "foo:"
│ │ └── value:
│ │ @ IntegerNode (location: (1,11)-(1,12))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/prism/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt b/test/prism/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt
index db281e2f0d..b233427556 100644
--- a/test/prism/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt
+++ b/test/prism/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,28))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,28))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,28))
+ ├── flags: newline
├── name: :f
├── name_loc: (1,4)-(1,5) = "f"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (1,6)-(1,16))
+ │ ├── flags: ∅
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
│ ├── rest: ∅
@@ -20,6 +24,7 @@
│ │ ├── name_loc: (1,6)-(1,8) = "a:"
│ │ └── value:
│ │ @ NilNode (location: (1,9)-(1,12))
+ │ │ └── flags: static_literal
│ ├── keyword_rest:
│ │ @ KeywordRestParameterNode (location: (1,14)-(1,16))
│ │ ├── flags: ∅
@@ -29,9 +34,10 @@
│ └── block: ∅
├── body:
│ @ StatementsNode (location: (1,19)-(1,24))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,19)-(1,24))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :b
@@ -45,6 +51,7 @@
│ │ ├── flags: ∅
│ │ └── elements: (length: 1)
│ │ └── @ AssocSplatNode (location: (1,21)-(1,23))
+ │ │ ├── flags: ∅
│ │ ├── value: ∅
│ │ └── operator_loc: (1,21)-(1,23) = "**"
│ ├── closing_loc: (1,23)-(1,24) = ")"
diff --git a/test/prism/snapshots/whitequark/kwrestarg_named.txt b/test/prism/snapshots/whitequark/kwrestarg_named.txt
index d24426aed5..3f411208aa 100644
--- a/test/prism/snapshots/whitequark/kwrestarg_named.txt
+++ b/test/prism/snapshots/whitequark/kwrestarg_named.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,11))
+ │ ├── flags: ∅
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
│ ├── rest: ∅
diff --git a/test/prism/snapshots/whitequark/kwrestarg_unnamed.txt b/test/prism/snapshots/whitequark/kwrestarg_unnamed.txt
index d471e5ab09..6fc42b0e80 100644
--- a/test/prism/snapshots/whitequark/kwrestarg_unnamed.txt
+++ b/test/prism/snapshots/whitequark/kwrestarg_unnamed.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── name: :f
├── name_loc: (1,4)-(1,5) = "f"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (1,6)-(1,8))
+ │ ├── flags: ∅
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
│ ├── rest: ∅
diff --git a/test/prism/snapshots/whitequark/lbrace_arg_after_command_args.txt b/test/prism/snapshots/whitequark/lbrace_arg_after_command_args.txt
index f877fcd270..9132ab64ab 100644
--- a/test/prism/snapshots/whitequark/lbrace_arg_after_command_args.txt
+++ b/test/prism/snapshots/whitequark/lbrace_arg_after_command_args.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: :let
@@ -15,11 +17,13 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (1,4)-(1,8))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,5)-(1,7))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (1,5)-(1,7))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (1,5)-(1,6) = ":"
│ │ ├── value_loc: (1,6)-(1,7) = "a"
│ │ ├── closing_loc: ∅
@@ -29,13 +33,15 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,9)-(1,22))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body:
│ @ StatementsNode (location: (1,11)-(1,20))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,11)-(1,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :m
@@ -45,6 +51,7 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,13)-(1,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
diff --git a/test/prism/snapshots/whitequark/lparenarg_after_lvar__since_25.txt b/test/prism/snapshots/whitequark/lparenarg_after_lvar__since_25.txt
index afddc9cd3c..4c11a17f86 100644
--- a/test/prism/snapshots/whitequark/lparenarg_after_lvar__since_25.txt
+++ b/test/prism/snapshots/whitequark/lparenarg_after_lvar__since_25.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,15))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,14))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
@@ -18,10 +20,13 @@
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ ParenthesesNode (location: (1,4)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (1,5)-(1,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ FloatNode (location: (1,5)-(1,9))
+ │ │ │ │ ├── flags: newline, static_literal
│ │ │ │ └── value: -1.3
│ │ │ ├── opening_loc: (1,4)-(1,5) = "("
│ │ │ └── closing_loc: (1,9)-(1,10) = ")"
@@ -35,7 +40,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (3,0)-(3,15))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :meth
@@ -49,10 +54,13 @@
│ ├── flags: ∅
│ ├── receiver:
│ │ @ ParenthesesNode (location: (3,5)-(3,11))
+ │ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (3,6)-(3,10))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ FloatNode (location: (3,6)-(3,10))
+ │ │ │ ├── flags: newline, static_literal
│ │ │ └── value: -1.3
│ │ ├── opening_loc: (3,5)-(3,6) = "("
│ │ └── closing_loc: (3,10)-(3,11) = ")"
diff --git a/test/prism/snapshots/whitequark/lvar.txt b/test/prism/snapshots/whitequark/lvar.txt
index afceb6a1a4..3de3483075 100644
--- a/test/prism/snapshots/whitequark/lvar.txt
+++ b/test/prism/snapshots/whitequark/lvar.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,3))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :foo
diff --git a/test/prism/snapshots/whitequark/lvar_injecting_match.txt b/test/prism/snapshots/whitequark/lvar_injecting_match.txt
index 0d1df23d0d..d7a3015279 100644
--- a/test/prism/snapshots/whitequark/lvar_injecting_match.txt
+++ b/test/prism/snapshots/whitequark/lvar_injecting_match.txt
@@ -1,15 +1,18 @@
@ ProgramNode (location: (1,0)-(1,31))
+├── flags: ∅
├── locals: [:match]
└── statements:
@ StatementsNode (location: (1,0)-(1,31))
+ ├── flags: ∅
└── body: (length: 2)
├── @ MatchWriteNode (location: (1,0)-(1,24))
+ │ ├── flags: newline
│ ├── call:
│ │ @ CallNode (location: (1,0)-(1,24))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ RegularExpressionNode (location: (1,0)-(1,15))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (1,0)-(1,1) = "/"
│ │ │ ├── content_loc: (1,1)-(1,14) = "(?<match>bar)"
│ │ │ ├── closing_loc: (1,14)-(1,15) = "/"
@@ -32,8 +35,10 @@
│ │ └── block: ∅
│ └── targets: (length: 1)
│ └── @ LocalVariableTargetNode (location: (1,4)-(1,9))
+ │ ├── flags: ∅
│ ├── name: :match
│ └── depth: 0
└── @ LocalVariableReadNode (location: (1,26)-(1,31))
+ ├── flags: newline
├── name: :match
└── depth: 0
diff --git a/test/prism/snapshots/whitequark/lvasgn.txt b/test/prism/snapshots/whitequark/lvasgn.txt
index be35c00587..43cb251bd5 100644
--- a/test/prism/snapshots/whitequark/lvasgn.txt
+++ b/test/prism/snapshots/whitequark/lvasgn.txt
@@ -1,17 +1,21 @@
@ ProgramNode (location: (1,0)-(1,13))
+├── flags: ∅
├── locals: [:var]
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LocalVariableWriteNode (location: (1,0)-(1,8))
+ │ ├── flags: newline
│ ├── name: :var
│ ├── depth: 0
│ ├── name_loc: (1,0)-(1,3) = "var"
│ ├── value:
│ │ @ IntegerNode (location: (1,6)-(1,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 10
│ └── operator_loc: (1,4)-(1,5) = "="
└── @ LocalVariableReadNode (location: (1,10)-(1,13))
+ ├── flags: newline
├── name: :var
└── depth: 0
diff --git a/test/prism/snapshots/whitequark/masgn.txt b/test/prism/snapshots/whitequark/masgn.txt
index 32e46bfdf7..a7ce7f5691 100644
--- a/test/prism/snapshots/whitequark/masgn.txt
+++ b/test/prism/snapshots/whitequark/masgn.txt
@@ -1,14 +1,19 @@
@ ProgramNode (location: (1,0)-(5,20))
+├── flags: ∅
├── locals: [:foo, :bar, :baz]
└── statements:
@ StatementsNode (location: (1,0)-(5,20))
+ ├── flags: ∅
└── body: (length: 3)
├── @ MultiWriteNode (location: (1,0)-(1,17))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ LocalVariableTargetNode (location: (1,1)-(1,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :foo
│ │ │ └── depth: 0
│ │ └── @ LocalVariableTargetNode (location: (1,6)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── name: :bar
│ │ └── depth: 0
│ ├── rest: ∅
@@ -18,22 +23,25 @@
│ ├── operator_loc: (1,11)-(1,12) = "="
│ └── value:
│ @ ArrayNode (location: (1,13)-(1,17))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── elements: (length: 2)
│ │ ├── @ IntegerNode (location: (1,13)-(1,14))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ IntegerNode (location: (1,16)-(1,17))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── opening_loc: ∅
│ └── closing_loc: ∅
├── @ MultiWriteNode (location: (3,0)-(3,15))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ LocalVariableTargetNode (location: (3,0)-(3,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :foo
│ │ │ └── depth: 0
│ │ └── @ LocalVariableTargetNode (location: (3,5)-(3,8))
+ │ │ ├── flags: ∅
│ │ ├── name: :bar
│ │ └── depth: 0
│ ├── rest: ∅
@@ -43,25 +51,29 @@
│ ├── operator_loc: (3,9)-(3,10) = "="
│ └── value:
│ @ ArrayNode (location: (3,11)-(3,15))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── elements: (length: 2)
│ │ ├── @ IntegerNode (location: (3,11)-(3,12))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ IntegerNode (location: (3,14)-(3,15))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── opening_loc: ∅
│ └── closing_loc: ∅
└── @ MultiWriteNode (location: (5,0)-(5,20))
+ ├── flags: newline
├── lefts: (length: 3)
│ ├── @ LocalVariableTargetNode (location: (5,0)-(5,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── @ LocalVariableTargetNode (location: (5,5)-(5,8))
+ │ │ ├── flags: ∅
│ │ ├── name: :bar
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (5,10)-(5,13))
+ │ ├── flags: ∅
│ ├── name: :baz
│ └── depth: 0
├── rest: ∅
@@ -71,13 +83,13 @@
├── operator_loc: (5,14)-(5,15) = "="
└── value:
@ ArrayNode (location: (5,16)-(5,20))
- ├── flags: ∅
+ ├── flags: static_literal
├── elements: (length: 2)
│ ├── @ IntegerNode (location: (5,16)-(5,17))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ IntegerNode (location: (5,19)-(5,20))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
├── opening_loc: ∅
└── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/masgn_attr.txt b/test/prism/snapshots/whitequark/masgn_attr.txt
index f4f4276597..4e7b85e960 100644
--- a/test/prism/snapshots/whitequark/masgn_attr.txt
+++ b/test/prism/snapshots/whitequark/masgn_attr.txt
@@ -1,18 +1,23 @@
@ ProgramNode (location: (1,0)-(5,18))
+├── flags: ∅
├── locals: [:foo]
└── statements:
@ StatementsNode (location: (1,0)-(5,18))
+ ├── flags: ∅
└── body: (length: 3)
├── @ MultiWriteNode (location: (1,0)-(1,17))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ CallTargetNode (location: (1,0)-(1,6))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver:
│ │ │ │ @ SelfNode (location: (1,0)-(1,4))
+ │ │ │ │ └── flags: ∅
│ │ │ ├── call_operator_loc: (1,4)-(1,5) = "."
│ │ │ ├── name: :A=
│ │ │ └── message_loc: (1,5)-(1,6) = "A"
│ │ └── @ LocalVariableTargetNode (location: (1,8)-(1,11))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── rest: ∅
@@ -22,14 +27,17 @@
│ ├── operator_loc: (1,12)-(1,13) = "="
│ └── value:
│ @ LocalVariableReadNode (location: (1,14)-(1,17))
+ │ ├── flags: ∅
│ ├── name: :foo
│ └── depth: 0
├── @ MultiWriteNode (location: (3,0)-(3,24))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ CallTargetNode (location: (3,0)-(3,6))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver:
│ │ │ │ @ SelfNode (location: (3,0)-(3,4))
+ │ │ │ │ └── flags: ∅
│ │ │ ├── call_operator_loc: (3,4)-(3,5) = "."
│ │ │ ├── name: :a=
│ │ │ └── message_loc: (3,5)-(3,6) = "a"
@@ -37,16 +45,17 @@
│ │ ├── flags: attribute_write, ignore_visibility
│ │ ├── receiver:
│ │ │ @ SelfNode (location: (3,8)-(3,12))
+ │ │ │ └── flags: ∅
│ │ ├── opening_loc: (3,12)-(3,13) = "["
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (3,13)-(3,17))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 2)
│ │ │ ├── @ IntegerNode (location: (3,13)-(3,14))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ IntegerNode (location: (3,16)-(3,17))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: (3,17)-(3,18) = "]"
│ │ └── block: ∅
@@ -57,18 +66,22 @@
│ ├── operator_loc: (3,19)-(3,20) = "="
│ └── value:
│ @ LocalVariableReadNode (location: (3,21)-(3,24))
+ │ ├── flags: ∅
│ ├── name: :foo
│ └── depth: 0
└── @ MultiWriteNode (location: (5,0)-(5,18))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ CallTargetNode (location: (5,0)-(5,7))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver:
│ │ │ @ SelfNode (location: (5,0)-(5,4))
+ │ │ │ └── flags: ∅
│ │ ├── call_operator_loc: (5,4)-(5,6) = "::"
│ │ ├── name: :a=
│ │ └── message_loc: (5,6)-(5,7) = "a"
│ └── @ LocalVariableTargetNode (location: (5,9)-(5,12))
+ │ ├── flags: ∅
│ ├── name: :foo
│ └── depth: 0
├── rest: ∅
@@ -78,5 +91,6 @@
├── operator_loc: (5,13)-(5,14) = "="
└── value:
@ LocalVariableReadNode (location: (5,15)-(5,18))
+ ├── flags: ∅
├── name: :foo
└── depth: 0
diff --git a/test/prism/snapshots/whitequark/masgn_cmd.txt b/test/prism/snapshots/whitequark/masgn_cmd.txt
index 1c62658ab2..8ca2afbba0 100644
--- a/test/prism/snapshots/whitequark/masgn_cmd.txt
+++ b/test/prism/snapshots/whitequark/masgn_cmd.txt
@@ -1,14 +1,19 @@
@ ProgramNode (location: (1,0)-(1,16))
+├── flags: ∅
├── locals: [:foo, :bar]
└── statements:
@ StatementsNode (location: (1,0)-(1,16))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,16))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,5)-(1,8))
+ │ ├── flags: ∅
│ ├── name: :bar
│ └── depth: 0
├── rest: ∅
@@ -29,6 +34,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LocalVariableReadNode (location: (1,13)-(1,16))
+ │ ├── flags: ∅
│ ├── name: :foo
│ └── depth: 0
├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/masgn_const.txt b/test/prism/snapshots/whitequark/masgn_const.txt
index ddfccb0d8b..160b0b0f03 100644
--- a/test/prism/snapshots/whitequark/masgn_const.txt
+++ b/test/prism/snapshots/whitequark/masgn_const.txt
@@ -1,16 +1,21 @@
@ ProgramNode (location: (1,0)-(3,18))
+├── flags: ∅
├── locals: [:foo]
└── statements:
@ StatementsNode (location: (1,0)-(3,18))
+ ├── flags: ∅
└── body: (length: 2)
├── @ MultiWriteNode (location: (1,0)-(1,14))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ ConstantPathTargetNode (location: (1,0)-(1,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── parent: ∅
│ │ │ ├── name: :A
│ │ │ ├── delimiter_loc: (1,0)-(1,2) = "::"
│ │ │ └── name_loc: (1,2)-(1,3) = "A"
│ │ └── @ LocalVariableTargetNode (location: (1,5)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── rest: ∅
@@ -20,17 +25,22 @@
│ ├── operator_loc: (1,9)-(1,10) = "="
│ └── value:
│ @ LocalVariableReadNode (location: (1,11)-(1,14))
+ │ ├── flags: ∅
│ ├── name: :foo
│ └── depth: 0
└── @ MultiWriteNode (location: (3,0)-(3,18))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ ConstantPathTargetNode (location: (3,0)-(3,7))
+ │ │ ├── flags: ∅
│ │ ├── parent:
│ │ │ @ SelfNode (location: (3,0)-(3,4))
+ │ │ │ └── flags: ∅
│ │ ├── name: :A
│ │ ├── delimiter_loc: (3,4)-(3,6) = "::"
│ │ └── name_loc: (3,6)-(3,7) = "A"
│ └── @ LocalVariableTargetNode (location: (3,9)-(3,12))
+ │ ├── flags: ∅
│ ├── name: :foo
│ └── depth: 0
├── rest: ∅
@@ -40,5 +50,6 @@
├── operator_loc: (3,13)-(3,14) = "="
└── value:
@ LocalVariableReadNode (location: (3,15)-(3,18))
+ ├── flags: ∅
├── name: :foo
└── depth: 0
diff --git a/test/prism/snapshots/whitequark/masgn_nested.txt b/test/prism/snapshots/whitequark/masgn_nested.txt
index 3e4602472f..db92f24ab5 100644
--- a/test/prism/snapshots/whitequark/masgn_nested.txt
+++ b/test/prism/snapshots/whitequark/masgn_nested.txt
@@ -1,17 +1,23 @@
@ ProgramNode (location: (1,0)-(3,15))
+├── flags: ∅
├── locals: [:b, :a, :c]
└── statements:
@ StatementsNode (location: (1,0)-(3,15))
+ ├── flags: ∅
└── body: (length: 2)
├── @ MultiWriteNode (location: (1,0)-(1,13))
+ │ ├── flags: newline
│ ├── lefts: (length: 1)
│ │ └── @ MultiTargetNode (location: (1,1)-(1,6))
+ │ │ ├── flags: ∅
│ │ ├── lefts: (length: 1)
│ │ │ └── @ LocalVariableTargetNode (location: (1,2)-(1,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ └── depth: 0
│ │ ├── rest:
│ │ │ @ ImplicitRestNode (location: (1,3)-(1,4))
+ │ │ │ └── flags: ∅
│ │ ├── rights: (length: 0)
│ │ ├── lparen_loc: (1,1)-(1,2) = "("
│ │ └── rparen_loc: (1,5)-(1,6) = ")"
@@ -32,16 +38,21 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ MultiWriteNode (location: (3,0)-(3,15))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (3,0)-(3,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ └── @ MultiTargetNode (location: (3,3)-(3,9))
+ │ ├── flags: ∅
│ ├── lefts: (length: 2)
│ │ ├── @ LocalVariableTargetNode (location: (3,4)-(3,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ └── depth: 0
│ │ └── @ LocalVariableTargetNode (location: (3,7)-(3,8))
+ │ │ ├── flags: ∅
│ │ ├── name: :c
│ │ └── depth: 0
│ ├── rest: ∅
diff --git a/test/prism/snapshots/whitequark/masgn_splat.txt b/test/prism/snapshots/whitequark/masgn_splat.txt
index 0db040a3ab..e50174d9de 100644
--- a/test/prism/snapshots/whitequark/masgn_splat.txt
+++ b/test/prism/snapshots/whitequark/masgn_splat.txt
@@ -1,12 +1,16 @@
@ ProgramNode (location: (1,0)-(19,16))
+├── flags: ∅
├── locals: [:c, :d, :b, :a]
└── statements:
@ StatementsNode (location: (1,0)-(19,16))
+ ├── flags: ∅
└── body: (length: 10)
├── @ MultiWriteNode (location: (1,0)-(1,7))
+ │ ├── flags: newline
│ ├── lefts: (length: 0)
│ ├── rest:
│ │ @ SplatNode (location: (1,0)-(1,1))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (1,0)-(1,1) = "*"
│ │ └── expression: ∅
│ ├── rights: (length: 0)
@@ -25,16 +29,20 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ MultiWriteNode (location: (3,0)-(3,13))
+ │ ├── flags: newline
│ ├── lefts: (length: 0)
│ ├── rest:
│ │ @ SplatNode (location: (3,0)-(3,1))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (3,0)-(3,1) = "*"
│ │ └── expression: ∅
│ ├── rights: (length: 2)
│ │ ├── @ LocalVariableTargetNode (location: (3,3)-(3,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :c
│ │ │ └── depth: 0
│ │ └── @ LocalVariableTargetNode (location: (3,6)-(3,7))
+ │ │ ├── flags: ∅
│ │ ├── name: :d
│ │ └── depth: 0
│ ├── lparen_loc: ∅
@@ -52,12 +60,15 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ MultiWriteNode (location: (5,0)-(5,8))
+ │ ├── flags: newline
│ ├── lefts: (length: 0)
│ ├── rest:
│ │ @ SplatNode (location: (5,0)-(5,2))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (5,0)-(5,1) = "*"
│ │ └── expression:
│ │ @ LocalVariableTargetNode (location: (5,1)-(5,2))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ ├── rights: (length: 0)
@@ -76,16 +87,20 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ MultiWriteNode (location: (7,0)-(7,11))
+ │ ├── flags: newline
│ ├── lefts: (length: 0)
│ ├── rest:
│ │ @ SplatNode (location: (7,0)-(7,2))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (7,0)-(7,1) = "*"
│ │ └── expression:
│ │ @ LocalVariableTargetNode (location: (7,1)-(7,2))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ ├── rights: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (7,4)-(7,5))
+ │ │ ├── flags: ∅
│ │ ├── name: :c
│ │ └── depth: 0
│ ├── lparen_loc: ∅
@@ -103,10 +118,13 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ MultiWriteNode (location: (9,0)-(9,18))
+ │ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ InstanceVariableTargetNode (location: (9,0)-(9,4))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :@foo
│ │ └── @ ClassVariableTargetNode (location: (9,6)-(9,11))
+ │ │ ├── flags: ∅
│ │ └── name: :@@bar
│ ├── rest: ∅
│ ├── rights: (length: 0)
@@ -118,6 +136,7 @@
│ ├── flags: contains_splat
│ ├── elements: (length: 1)
│ │ └── @ SplatNode (location: (9,14)-(9,18))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (9,14)-(9,15) = "*"
│ │ └── expression:
│ │ @ CallNode (location: (9,15)-(9,18))
@@ -133,12 +152,15 @@
│ ├── opening_loc: ∅
│ └── closing_loc: ∅
├── @ MultiWriteNode (location: (11,0)-(11,10))
+ │ ├── flags: newline
│ ├── lefts: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (11,0)-(11,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── rest:
│ │ @ SplatNode (location: (11,3)-(11,4))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (11,3)-(11,4) = "*"
│ │ └── expression: ∅
│ ├── rights: (length: 0)
@@ -157,16 +179,20 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ MultiWriteNode (location: (13,0)-(13,13))
+ │ ├── flags: newline
│ ├── lefts: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (13,0)-(13,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── rest:
│ │ @ SplatNode (location: (13,3)-(13,4))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (13,3)-(13,4) = "*"
│ │ └── expression: ∅
│ ├── rights: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (13,6)-(13,7))
+ │ │ ├── flags: ∅
│ │ ├── name: :c
│ │ └── depth: 0
│ ├── lparen_loc: ∅
@@ -184,15 +210,19 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ MultiWriteNode (location: (15,0)-(15,11))
+ │ ├── flags: newline
│ ├── lefts: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (15,0)-(15,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── rest:
│ │ @ SplatNode (location: (15,3)-(15,5))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (15,3)-(15,4) = "*"
│ │ └── expression:
│ │ @ LocalVariableTargetNode (location: (15,4)-(15,5))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ ├── rights: (length: 0)
@@ -211,19 +241,24 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ MultiWriteNode (location: (17,0)-(17,14))
+ │ ├── flags: newline
│ ├── lefts: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (17,0)-(17,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── rest:
│ │ @ SplatNode (location: (17,3)-(17,5))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (17,3)-(17,4) = "*"
│ │ └── expression:
│ │ @ LocalVariableTargetNode (location: (17,4)-(17,5))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ ├── rights: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (17,7)-(17,8))
+ │ │ ├── flags: ∅
│ │ ├── name: :c
│ │ └── depth: 0
│ ├── lparen_loc: ∅
@@ -241,11 +276,14 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ MultiWriteNode (location: (19,0)-(19,16))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (19,0)-(19,1))
+ │ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (19,3)-(19,4))
+ │ ├── flags: ∅
│ ├── name: :b
│ └── depth: 0
├── rest: ∅
@@ -258,6 +296,7 @@
├── flags: contains_splat
├── elements: (length: 2)
│ ├── @ SplatNode (location: (19,7)-(19,11))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (19,7)-(19,8) = "*"
│ │ └── expression:
│ │ @ CallNode (location: (19,8)-(19,11))
diff --git a/test/prism/snapshots/whitequark/method_definition_in_while_cond.txt b/test/prism/snapshots/whitequark/method_definition_in_while_cond.txt
index 963686b73e..34a55fbe02 100644
--- a/test/prism/snapshots/whitequark/method_definition_in_while_cond.txt
+++ b/test/prism/snapshots/whitequark/method_definition_in_while_cond.txt
@@ -1,19 +1,23 @@
@ ProgramNode (location: (1,0)-(7,47))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(7,47))
+ ├── flags: ∅
└── body: (length: 4)
├── @ WhileNode (location: (1,0)-(1,45))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,5) = "while"
│ ├── closing_loc: (1,42)-(1,45) = "end"
│ ├── predicate:
│ │ @ DefNode (location: (1,6)-(1,33))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ ├── name_loc: (1,10)-(1,13) = "foo"
│ │ ├── receiver: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (1,14)-(1,28))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (1,14)-(1,28))
@@ -33,6 +37,7 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block:
│ │ │ │ @ BlockNode (location: (1,22)-(1,28))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅
@@ -53,25 +58,29 @@
│ │ └── end_keyword_loc: (1,30)-(1,33) = "end"
│ └── statements:
│ @ StatementsNode (location: (1,35)-(1,40))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ BreakNode (location: (1,35)-(1,40))
+ │ ├── flags: newline
│ ├── arguments: ∅
│ └── keyword_loc: (1,35)-(1,40) = "break"
├── @ WhileNode (location: (3,0)-(3,42))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (3,0)-(3,5) = "while"
│ ├── closing_loc: (3,39)-(3,42) = "end"
│ ├── predicate:
│ │ @ DefNode (location: (3,6)-(3,30))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ ├── name_loc: (3,10)-(3,13) = "foo"
│ │ ├── receiver: ∅
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (3,15)-(3,25))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (3,15)-(3,25))
- │ │ │ ├── flags: ignore_visibility
+ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :tap
@@ -81,6 +90,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (3,19)-(3,25))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅
@@ -95,22 +105,27 @@
│ │ └── end_keyword_loc: (3,27)-(3,30) = "end"
│ └── statements:
│ @ StatementsNode (location: (3,32)-(3,37))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ BreakNode (location: (3,32)-(3,37))
+ │ ├── flags: newline
│ ├── arguments: ∅
│ └── keyword_loc: (3,32)-(3,37) = "break"
├── @ WhileNode (location: (5,0)-(5,50))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (5,0)-(5,5) = "while"
│ ├── closing_loc: (5,47)-(5,50) = "end"
│ ├── predicate:
│ │ @ DefNode (location: (5,6)-(5,38))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ ├── name_loc: (5,15)-(5,18) = "foo"
│ │ ├── receiver:
│ │ │ @ SelfNode (location: (5,10)-(5,14))
+ │ │ │ └── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (5,19)-(5,33))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (5,19)-(5,33))
@@ -130,6 +145,7 @@
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block:
│ │ │ │ @ BlockNode (location: (5,27)-(5,33))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: []
│ │ │ │ ├── parameters: ∅
│ │ │ │ ├── body: ∅
@@ -150,26 +166,31 @@
│ │ └── end_keyword_loc: (5,35)-(5,38) = "end"
│ └── statements:
│ @ StatementsNode (location: (5,40)-(5,45))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ BreakNode (location: (5,40)-(5,45))
+ │ ├── flags: newline
│ ├── arguments: ∅
│ └── keyword_loc: (5,40)-(5,45) = "break"
└── @ WhileNode (location: (7,0)-(7,47))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (7,0)-(7,5) = "while"
├── closing_loc: (7,44)-(7,47) = "end"
├── predicate:
│ @ DefNode (location: (7,6)-(7,35))
+ │ ├── flags: ∅
│ ├── name: :foo
│ ├── name_loc: (7,15)-(7,18) = "foo"
│ ├── receiver:
│ │ @ SelfNode (location: (7,10)-(7,14))
+ │ │ └── flags: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (7,20)-(7,30))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (7,20)-(7,30))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :tap
@@ -179,6 +200,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (7,24)-(7,30))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -193,7 +215,9 @@
│ └── end_keyword_loc: (7,32)-(7,35) = "end"
└── statements:
@ StatementsNode (location: (7,37)-(7,42))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BreakNode (location: (7,37)-(7,42))
+ ├── flags: newline
├── arguments: ∅
└── keyword_loc: (7,37)-(7,42) = "break"
diff --git a/test/prism/snapshots/whitequark/module.txt b/test/prism/snapshots/whitequark/module.txt
index 87348c4ec9..2989be0109 100644
--- a/test/prism/snapshots/whitequark/module.txt
+++ b/test/prism/snapshots/whitequark/module.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(1,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ModuleNode (location: (1,0)-(1,15))
+ ├── flags: newline
├── locals: []
├── module_keyword_loc: (1,0)-(1,6) = "module"
├── constant_path:
│ @ ConstantReadNode (location: (1,7)-(1,10))
+ │ ├── flags: ∅
│ └── name: :Foo
├── body: ∅
├── end_keyword_loc: (1,12)-(1,15) = "end"
diff --git a/test/prism/snapshots/whitequark/multiple_pattern_matches.txt b/test/prism/snapshots/whitequark/multiple_pattern_matches.txt
index afa3517e11..24cf259e08 100644
--- a/test/prism/snapshots/whitequark/multiple_pattern_matches.txt
+++ b/test/prism/snapshots/whitequark/multiple_pattern_matches.txt
@@ -1,43 +1,52 @@
@ ProgramNode (location: (1,0)-(5,12))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(5,12))
+ ├── flags: ∅
└── body: (length: 4)
├── @ MatchRequiredNode (location: (1,0)-(1,12))
+ │ ├── flags: newline
│ ├── value:
│ │ @ HashNode (location: (1,0)-(1,6))
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (1,0)-(1,1) = "{"
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (1,1)-(1,5))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (1,1)-(1,3))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (1,1)-(1,2) = "a"
│ │ │ │ ├── closing_loc: (1,2)-(1,3) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (1,4)-(1,5))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 0
│ │ │ └── operator_loc: ∅
│ │ └── closing_loc: (1,5)-(1,6) = "}"
│ ├── pattern:
│ │ @ HashPatternNode (location: (1,10)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (1,10)-(1,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (1,10)-(1,12))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (1,10)-(1,11) = "a"
│ │ │ │ ├── closing_loc: (1,11)-(1,12) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (1,10)-(1,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ LocalVariableTargetNode (location: (1,10)-(1,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: ∅
@@ -46,40 +55,47 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (1,7)-(1,9) = "=>"
├── @ MatchRequiredNode (location: (2,0)-(2,12))
+ │ ├── flags: newline
│ ├── value:
│ │ @ HashNode (location: (2,0)-(2,6))
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (2,0)-(2,1) = "{"
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (2,1)-(2,5))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,1)-(2,3))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,1)-(2,2) = "a"
│ │ │ │ ├── closing_loc: (2,2)-(2,3) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (2,4)-(2,5))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 0
│ │ │ └── operator_loc: ∅
│ │ └── closing_loc: (2,5)-(2,6) = "}"
│ ├── pattern:
│ │ @ HashPatternNode (location: (2,10)-(2,12))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (2,10)-(2,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,10)-(2,12))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,10)-(2,11) = "a"
│ │ │ │ ├── closing_loc: (2,11)-(2,12) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (2,10)-(2,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ LocalVariableTargetNode (location: (2,10)-(2,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: ∅
@@ -88,40 +104,47 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (2,7)-(2,9) = "=>"
├── @ MatchPredicateNode (location: (4,0)-(4,12))
+ │ ├── flags: newline
│ ├── value:
│ │ @ HashNode (location: (4,0)-(4,6))
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (4,0)-(4,1) = "{"
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (4,1)-(4,5))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (4,1)-(4,3))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (4,1)-(4,2) = "a"
│ │ │ │ ├── closing_loc: (4,2)-(4,3) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (4,4)-(4,5))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 0
│ │ │ └── operator_loc: ∅
│ │ └── closing_loc: (4,5)-(4,6) = "}"
│ ├── pattern:
│ │ @ HashPatternNode (location: (4,10)-(4,12))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (4,10)-(4,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (4,10)-(4,12))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (4,10)-(4,11) = "a"
│ │ │ │ ├── closing_loc: (4,11)-(4,12) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (4,10)-(4,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ LocalVariableTargetNode (location: (4,10)-(4,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: ∅
@@ -130,40 +153,47 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (4,7)-(4,9) = "in"
└── @ MatchPredicateNode (location: (5,0)-(5,12))
+ ├── flags: newline
├── value:
│ @ HashNode (location: (5,0)-(5,6))
+ │ ├── flags: static_literal
│ ├── opening_loc: (5,0)-(5,1) = "{"
│ ├── elements: (length: 1)
│ │ └── @ AssocNode (location: (5,1)-(5,5))
+ │ │ ├── flags: static_literal
│ │ ├── 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:
│ │ │ @ IntegerNode (location: (5,4)-(5,5))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 0
│ │ └── operator_loc: ∅
│ └── closing_loc: (5,5)-(5,6) = "}"
├── pattern:
│ @ HashPatternNode (location: (5,10)-(5,12))
+ │ ├── flags: ∅
│ ├── constant: ∅
│ ├── elements: (length: 1)
│ │ └── @ AssocNode (location: (5,10)-(5,12))
+ │ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,10)-(5,12))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (5,10)-(5,11) = "a"
│ │ │ ├── closing_loc: (5,11)-(5,12) = ":"
│ │ │ └── unescaped: "a"
│ │ ├── value:
│ │ │ @ ImplicitNode (location: (5,10)-(5,11))
+ │ │ │ ├── flags: ∅
│ │ │ └── value:
│ │ │ @ LocalVariableTargetNode (location: (5,10)-(5,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :a
│ │ │ └── depth: 0
│ │ └── operator_loc: ∅
diff --git a/test/prism/snapshots/whitequark/newline_in_hash_argument.txt b/test/prism/snapshots/whitequark/newline_in_hash_argument.txt
index 7ef006645b..f43739ba12 100644
--- a/test/prism/snapshots/whitequark/newline_in_hash_argument.txt
+++ b/test/prism/snapshots/whitequark/newline_in_hash_argument.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(14,1))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(14,1))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CaseMatchNode (location: (1,0)-(8,3))
+ │ ├── flags: newline
│ ├── predicate:
│ │ @ CallNode (location: (1,5)-(1,8))
│ │ ├── flags: variable_call, ignore_visibility
@@ -17,22 +20,27 @@
│ │ └── block: ∅
│ ├── conditions: (length: 2)
│ │ ├── @ InNode (location: (2,0)-(4,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── pattern:
│ │ │ │ @ HashPatternNode (location: (2,3)-(2,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── constant: ∅
│ │ │ │ ├── elements: (length: 1)
│ │ │ │ │ └── @ AssocNode (location: (2,3)-(2,5))
+ │ │ │ │ │ ├── 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) = "a"
│ │ │ │ │ │ ├── closing_loc: (2,4)-(2,5) = ":"
│ │ │ │ │ │ └── unescaped: "a"
│ │ │ │ │ ├── value:
│ │ │ │ │ │ @ ImplicitNode (location: (2,3)-(2,4))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── value:
│ │ │ │ │ │ @ LocalVariableTargetNode (location: (2,3)-(2,4))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── name: :a
│ │ │ │ │ │ └── depth: 0
│ │ │ │ │ └── operator_loc: ∅
@@ -41,30 +49,37 @@
│ │ │ │ └── closing_loc: ∅
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (3,0)-(4,4))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 2)
│ │ │ │ ├── @ IntegerNode (location: (3,0)-(3,1))
- │ │ │ │ │ ├── flags: decimal
+ │ │ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ │ └── value: 0
│ │ │ │ └── @ TrueNode (location: (4,0)-(4,4))
+ │ │ │ │ └── flags: newline, static_literal
│ │ │ ├── in_loc: (2,0)-(2,2) = "in"
│ │ │ └── then_loc: ∅
│ │ └── @ InNode (location: (5,0)-(7,4))
+ │ │ ├── flags: ∅
│ │ ├── pattern:
│ │ │ @ HashPatternNode (location: (5,3)-(5,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── constant: ∅
│ │ │ ├── elements: (length: 1)
│ │ │ │ └── @ AssocNode (location: (5,3)-(5,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (5,3)-(5,7))
- │ │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ │ ├── opening_loc: (5,3)-(5,4) = "\""
│ │ │ │ │ ├── value_loc: (5,4)-(5,5) = "b"
│ │ │ │ │ ├── closing_loc: (5,5)-(5,7) = "\":"
│ │ │ │ │ └── unescaped: "b"
│ │ │ │ ├── value:
│ │ │ │ │ @ ImplicitNode (location: (5,4)-(5,5))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── value:
│ │ │ │ │ @ LocalVariableTargetNode (location: (5,4)-(5,5))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── name: :b
│ │ │ │ │ └── depth: 0
│ │ │ │ └── operator_loc: ∅
@@ -73,18 +88,20 @@
│ │ │ └── closing_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (6,0)-(7,4))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 2)
│ │ │ ├── @ IntegerNode (location: (6,0)-(6,1))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ └── value: 0
│ │ │ └── @ TrueNode (location: (7,0)-(7,4))
+ │ │ │ └── flags: newline, static_literal
│ │ ├── in_loc: (5,0)-(5,2) = "in"
│ │ └── then_loc: ∅
│ ├── consequent: ∅
│ ├── case_keyword_loc: (1,0)-(1,4) = "case"
│ └── end_keyword_loc: (8,0)-(8,3) = "end"
├── @ CallNode (location: (10,0)-(11,1))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (10,0)-(10,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -108,22 +125,23 @@
│ │ ├── flags: symbol_keys
│ │ └── elements: (length: 1)
│ │ └── @ AssocNode (location: (10,8)-(11,1))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ SymbolNode (location: (10,8)-(10,14))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (10,8)-(10,9) = "\""
│ │ │ ├── value_loc: (10,9)-(10,12) = "foo"
│ │ │ ├── closing_loc: (10,12)-(10,14) = "\":"
│ │ │ └── unescaped: "foo"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (11,0)-(11,1))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (13,0)-(14,1))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (13,0)-(13,3))
│ ├── flags: variable_call, ignore_visibility
@@ -147,16 +165,17 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (13,8)-(14,1))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ SymbolNode (location: (13,8)-(13,12))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (13,8)-(13,11) = "foo"
│ │ ├── closing_loc: (13,11)-(13,12) = ":"
│ │ └── unescaped: "foo"
│ ├── value:
│ │ @ IntegerNode (location: (14,0)-(14,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: ∅
├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/nil.txt b/test/prism/snapshots/whitequark/nil.txt
index 15774c02fd..39b9c2e821 100644
--- a/test/prism/snapshots/whitequark/nil.txt
+++ b/test/prism/snapshots/whitequark/nil.txt
@@ -1,6 +1,9 @@
@ ProgramNode (location: (1,0)-(1,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ NilNode (location: (1,0)-(1,3))
+ └── flags: newline, static_literal
diff --git a/test/prism/snapshots/whitequark/nil_expression.txt b/test/prism/snapshots/whitequark/nil_expression.txt
index 7421115611..00e579864c 100644
--- a/test/prism/snapshots/whitequark/nil_expression.txt
+++ b/test/prism/snapshots/whitequark/nil_expression.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(3,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,9))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ParenthesesNode (location: (1,0)-(1,2))
+ │ ├── flags: newline
│ ├── body: ∅
│ ├── opening_loc: (1,0)-(1,1) = "("
│ └── closing_loc: (1,1)-(1,2) = ")"
└── @ BeginNode (location: (3,0)-(3,9))
+ ├── flags: newline
├── begin_keyword_loc: (3,0)-(3,5) = "begin"
├── statements: ∅
├── rescue_clause: ∅
diff --git a/test/prism/snapshots/whitequark/non_lvar_injecting_match.txt b/test/prism/snapshots/whitequark/non_lvar_injecting_match.txt
index 584e997df2..0322423e63 100644
--- a/test/prism/snapshots/whitequark/non_lvar_injecting_match.txt
+++ b/test/prism/snapshots/whitequark/non_lvar_injecting_match.txt
@@ -1,26 +1,30 @@
@ ProgramNode (location: (1,0)-(1,28))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,28))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,28))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ InterpolatedRegularExpressionNode (location: (1,0)-(1,19))
│ ├── flags: ∅
│ ├── 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)
│ │ │ │ └── @ IntegerNode (location: (1,3)-(1,4))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── closing_loc: (1,4)-(1,5) = "}"
│ │ └── @ StringNode (location: (1,5)-(1,18))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,5)-(1,18) = "(?<match>bar)"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/not.txt b/test/prism/snapshots/whitequark/not.txt
index 0a6d60e502..b70792f154 100644
--- a/test/prism/snapshots/whitequark/not.txt
+++ b/test/prism/snapshots/whitequark/not.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,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,4)-(1,7))
│ │ ├── flags: variable_call, ignore_visibility
@@ -24,7 +26,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :!
@@ -34,7 +36,7 @@
│ ├── closing_loc: (3,4)-(3,5) = ")"
│ └── block: ∅
└── @ CallNode (location: (5,0)-(5,8))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (5,4)-(5,7))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/not_cmd.txt b/test/prism/snapshots/whitequark/not_cmd.txt
index 3b111272c6..0ecd1cc67e 100644
--- a/test/prism/snapshots/whitequark/not_cmd.txt
+++ b/test/prism/snapshots/whitequark/not_cmd.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,4)-(1,9))
│ ├── flags: ignore_visibility
diff --git a/test/prism/snapshots/whitequark/not_masgn__24.txt b/test/prism/snapshots/whitequark/not_masgn__24.txt
index 90124c3866..d84faadc50 100644
--- a/test/prism/snapshots/whitequark/not_masgn__24.txt
+++ b/test/prism/snapshots/whitequark/not_masgn__24.txt
@@ -1,21 +1,28 @@
@ ProgramNode (location: (1,0)-(1,13))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,13))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ ParenthesesNode (location: (1,1)-(1,13))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,2)-(1,12))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ MultiWriteNode (location: (1,2)-(1,12))
+ │ │ ├── flags: newline
│ │ ├── lefts: (length: 2)
│ │ │ ├── @ LocalVariableTargetNode (location: (1,2)-(1,3))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableTargetNode (location: (1,5)-(1,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ └── depth: 0
│ │ ├── rest: ∅
diff --git a/test/prism/snapshots/whitequark/nth_ref.txt b/test/prism/snapshots/whitequark/nth_ref.txt
index 1d386d518b..cca1574548 100644
--- a/test/prism/snapshots/whitequark/nth_ref.txt
+++ b/test/prism/snapshots/whitequark/nth_ref.txt
@@ -1,7 +1,10 @@
@ ProgramNode (location: (1,0)-(1,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ NumberedReferenceReadNode (location: (1,0)-(1,3))
+ ├── flags: newline
└── number: 10
diff --git a/test/prism/snapshots/whitequark/numbered_args_after_27.txt b/test/prism/snapshots/whitequark/numbered_args_after_27.txt
index 56419adccd..7bf09f7904 100644
--- a/test/prism/snapshots/whitequark/numbered_args_after_27.txt
+++ b/test/prism/snapshots/whitequark/numbered_args_after_27.txt
@@ -1,23 +1,29 @@
@ ProgramNode (location: (1,0)-(7,13))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(7,13))
+ ├── flags: ∅
└── body: (length: 4)
├── @ LambdaNode (location: (1,0)-(1,17))
+ │ ├── flags: newline
│ ├── locals: [:_1, :_2, :_3, :_4, :_5, :_6, :_7, :_8, :_9]
│ ├── operator_loc: (1,0)-(1,2) = "->"
│ ├── opening_loc: (1,3)-(1,5) = "do"
│ ├── closing_loc: (1,14)-(1,17) = "end"
│ ├── parameters:
│ │ @ NumberedParametersNode (location: (1,0)-(1,17))
+ │ │ ├── flags: ∅
│ │ └── maximum: 9
│ └── body:
│ @ StatementsNode (location: (1,6)-(1,13))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,6)-(1,13))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (1,6)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── name: :_1
│ │ └── depth: 0
│ ├── call_operator_loc: ∅
@@ -29,25 +35,30 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (1,11)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── name: :_9
│ │ └── depth: 0
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ LambdaNode (location: (3,0)-(3,13))
+ │ ├── flags: newline
│ ├── locals: [:_1, :_2, :_3, :_4, :_5, :_6, :_7, :_8, :_9]
│ ├── operator_loc: (3,0)-(3,2) = "->"
│ ├── opening_loc: (3,3)-(3,4) = "{"
│ ├── closing_loc: (3,12)-(3,13) = "}"
│ ├── parameters:
│ │ @ NumberedParametersNode (location: (3,0)-(3,13))
+ │ │ ├── flags: ∅
│ │ └── maximum: 9
│ └── body:
│ @ StatementsNode (location: (3,5)-(3,12))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (3,5)-(3,12))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (3,5)-(3,7))
+ │ │ ├── flags: ∅
│ │ ├── name: :_1
│ │ └── depth: 0
│ ├── call_operator_loc: ∅
@@ -59,12 +70,13 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (3,10)-(3,12))
+ │ │ ├── flags: ∅
│ │ ├── name: :_9
│ │ └── depth: 0
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (5,0)-(5,16))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :m
@@ -74,17 +86,21 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,2)-(5,16))
+ │ ├── flags: ∅
│ ├── locals: [:_1, :_2, :_3, :_4, :_5, :_6, :_7, :_8, :_9]
│ ├── parameters:
│ │ @ NumberedParametersNode (location: (5,2)-(5,16))
+ │ │ ├── flags: ∅
│ │ └── maximum: 9
│ ├── body:
│ │ @ StatementsNode (location: (5,5)-(5,12))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (5,5)-(5,12))
- │ │ ├── flags: ∅
+ │ │ ├── flags: newline
│ │ ├── receiver:
│ │ │ @ LocalVariableReadNode (location: (5,5)-(5,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :_1
│ │ │ └── depth: 0
│ │ ├── call_operator_loc: ∅
@@ -96,6 +112,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ LocalVariableReadNode (location: (5,10)-(5,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :_9
│ │ │ └── depth: 0
│ │ ├── closing_loc: ∅
@@ -103,7 +120,7 @@
│ ├── opening_loc: (5,2)-(5,4) = "do"
│ └── closing_loc: (5,13)-(5,16) = "end"
└── @ CallNode (location: (7,0)-(7,13))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :m
@@ -113,17 +130,21 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (7,2)-(7,13))
+ ├── flags: ∅
├── locals: [:_1, :_2, :_3, :_4, :_5, :_6, :_7, :_8, :_9]
├── parameters:
│ @ NumberedParametersNode (location: (7,2)-(7,13))
+ │ ├── flags: ∅
│ └── maximum: 9
├── body:
│ @ StatementsNode (location: (7,4)-(7,11))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (7,4)-(7,11))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (7,4)-(7,6))
+ │ │ ├── flags: ∅
│ │ ├── name: :_1
│ │ └── depth: 0
│ ├── call_operator_loc: ∅
@@ -135,6 +156,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (7,9)-(7,11))
+ │ │ ├── flags: ∅
│ │ ├── name: :_9
│ │ └── depth: 0
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/numparam_outside_block.txt b/test/prism/snapshots/whitequark/numparam_outside_block.txt
index d79aedf7f9..beef05a392 100644
--- a/test/prism/snapshots/whitequark/numparam_outside_block.txt
+++ b/test/prism/snapshots/whitequark/numparam_outside_block.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(9,17))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(9,17))
+ ├── flags: ∅
└── body: (length: 5)
├── @ CallNode (location: (1,0)-(1,2))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :_1
@@ -14,6 +16,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ SingletonClassNode (location: (3,0)-(3,21))
+ │ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (3,0)-(3,5) = "class"
│ ├── operator_loc: (3,6)-(3,8) = "<<"
@@ -30,9 +33,10 @@
│ │ └── block: ∅
│ ├── body:
│ │ @ StatementsNode (location: (3,14)-(3,16))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (3,14)-(3,16))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :_1
@@ -43,18 +47,21 @@
│ │ └── block: ∅
│ └── end_keyword_loc: (3,18)-(3,21) = "end"
├── @ ClassNode (location: (5,0)-(5,16))
+ │ ├── 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:
│ │ @ StatementsNode (location: (5,9)-(5,11))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (5,9)-(5,11))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :_1
@@ -66,16 +73,19 @@
│ ├── end_keyword_loc: (5,13)-(5,16) = "end"
│ └── name: :A
├── @ DefNode (location: (7,0)-(7,19))
+ │ ├── flags: newline
│ ├── name: :m
│ ├── name_loc: (7,9)-(7,10) = "m"
│ ├── receiver:
│ │ @ SelfNode (location: (7,4)-(7,8))
+ │ │ └── flags: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (7,12)-(7,14))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (7,12)-(7,14))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :_1
@@ -92,16 +102,19 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (7,16)-(7,19) = "end"
└── @ ModuleNode (location: (9,0)-(9,17))
+ ├── flags: newline
├── locals: []
├── module_keyword_loc: (9,0)-(9,6) = "module"
├── constant_path:
│ @ ConstantReadNode (location: (9,7)-(9,8))
+ │ ├── flags: ∅
│ └── name: :A
├── body:
│ @ StatementsNode (location: (9,10)-(9,12))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (9,10)-(9,12))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :_1
diff --git a/test/prism/snapshots/whitequark/numparam_ruby_bug_19025.txt b/test/prism/snapshots/whitequark/numparam_ruby_bug_19025.txt
index 396238cbbf..5043c9be48 100644
--- a/test/prism/snapshots/whitequark/numparam_ruby_bug_19025.txt
+++ b/test/prism/snapshots/whitequark/numparam_ruby_bug_19025.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: :p
@@ -14,20 +16,24 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,14))
+ ├── flags: ∅
├── locals: [:_1]
├── parameters:
│ @ NumberedParametersNode (location: (1,2)-(1,14))
+ │ ├── flags: ∅
│ └── maximum: 1
├── body:
│ @ StatementsNode (location: (1,4)-(1,12))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ ArrayNode (location: (1,4)-(1,12))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 1)
│ │ └── @ CallNode (location: (1,5)-(1,11))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ LocalVariableReadNode (location: (1,5)-(1,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :_1
│ │ │ └── depth: 0
│ │ ├── call_operator_loc: ∅
@@ -39,7 +45,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,10)-(1,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
diff --git a/test/prism/snapshots/whitequark/op_asgn.txt b/test/prism/snapshots/whitequark/op_asgn.txt
index f726617904..cac3e0e7b1 100644
--- a/test/prism/snapshots/whitequark/op_asgn.txt
+++ b/test/prism/snapshots/whitequark/op_asgn.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,11))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CallOperatorWriteNode (location: (1,0)-(1,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -24,10 +26,10 @@
│ ├── binary_operator_loc: (1,6)-(1,8) = "+="
│ └── value:
│ @ IntegerNode (location: (1,9)-(1,10))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── @ CallOperatorWriteNode (location: (3,0)-(3,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -47,10 +49,10 @@
│ ├── binary_operator_loc: (3,6)-(3,8) = "+="
│ └── value:
│ @ IntegerNode (location: (3,9)-(3,10))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
└── @ CallOperatorWriteNode (location: (5,0)-(5,11))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (5,0)-(5,3))
│ ├── flags: variable_call, ignore_visibility
@@ -70,5 +72,5 @@
├── binary_operator_loc: (5,7)-(5,9) = "+="
└── value:
@ IntegerNode (location: (5,10)-(5,11))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
└── value: 1
diff --git a/test/prism/snapshots/whitequark/op_asgn_cmd.txt b/test/prism/snapshots/whitequark/op_asgn_cmd.txt
index d2d86b1bf9..6ee1650274 100644
--- a/test/prism/snapshots/whitequark/op_asgn_cmd.txt
+++ b/test/prism/snapshots/whitequark/op_asgn_cmd.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(7,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(7,15))
+ ├── flags: ∅
└── body: (length: 4)
├── @ CallOperatorWriteNode (location: (1,0)-(1,14))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -47,7 +49,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallOperatorWriteNode (location: (3,0)-(3,14))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -90,8 +92,10 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ ConstantPathOperatorWriteNode (location: (5,0)-(5,15))
+ │ ├── flags: newline
│ ├── target:
│ │ @ ConstantPathNode (location: (5,0)-(5,6))
+ │ │ ├── flags: ∅
│ │ ├── parent:
│ │ │ @ CallNode (location: (5,0)-(5,3))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -133,7 +137,7 @@
│ │ └── block: ∅
│ └── binary_operator: :+
└── @ CallOperatorWriteNode (location: (7,0)-(7,15))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (7,0)-(7,3))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/op_asgn_index.txt b/test/prism/snapshots/whitequark/op_asgn_index.txt
index b302abdafe..0e2927f0fb 100644
--- a/test/prism/snapshots/whitequark/op_asgn_index.txt
+++ b/test/prism/snapshots/whitequark/op_asgn_index.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IndexOperatorWriteNode (location: (1,0)-(1,14))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,3))
│ ├── flags: variable_call, ignore_visibility
@@ -23,10 +25,10 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ IntegerNode (location: (1,4)-(1,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ └── @ IntegerNode (location: (1,7)-(1,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: (1,8)-(1,9) = "]"
├── block: ∅
@@ -34,5 +36,5 @@
├── binary_operator_loc: (1,10)-(1,12) = "+="
└── value:
@ IntegerNode (location: (1,13)-(1,14))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
└── value: 2
diff --git a/test/prism/snapshots/whitequark/op_asgn_index_cmd.txt b/test/prism/snapshots/whitequark/op_asgn_index_cmd.txt
index 319ed1a51a..84cef7867d 100644
--- a/test/prism/snapshots/whitequark/op_asgn_index_cmd.txt
+++ b/test/prism/snapshots/whitequark/op_asgn_index_cmd.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,18))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,18))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IndexOperatorWriteNode (location: (1,0)-(1,18))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,3))
│ ├── flags: variable_call, ignore_visibility
@@ -23,10 +25,10 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ IntegerNode (location: (1,4)-(1,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ └── @ IntegerNode (location: (1,7)-(1,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: (1,8)-(1,9) = "]"
├── block: ∅
diff --git a/test/prism/snapshots/whitequark/optarg.txt b/test/prism/snapshots/whitequark/optarg.txt
index 695ed827ad..f25b004a00 100644
--- a/test/prism/snapshots/whitequark/optarg.txt
+++ b/test/prism/snapshots/whitequark/optarg.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(3,24))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,24))
+ ├── flags: ∅
└── body: (length: 2)
├── @ DefNode (location: (1,0)-(1,18))
+ │ ├── flags: newline
│ ├── name: :f
│ ├── name_loc: (1,4)-(1,5) = "f"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,6)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,6)-(1,13))
@@ -18,7 +22,7 @@
│ │ │ ├── operator_loc: (1,10)-(1,11) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,12)-(1,13))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
@@ -34,11 +38,13 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (1,15)-(1,18) = "end"
└── @ DefNode (location: (3,0)-(3,24))
+ ├── flags: newline
├── name: :f
├── name_loc: (3,4)-(3,5) = "f"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (3,6)-(3,18))
+ │ ├── flags: ∅
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 2)
│ │ ├── @ OptionalParameterNode (location: (3,6)-(3,11))
@@ -48,7 +54,7 @@
│ │ │ ├── operator_loc: (3,9)-(3,10) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (3,10)-(3,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ OptionalParameterNode (location: (3,13)-(3,18))
│ │ ├── flags: ∅
@@ -57,7 +63,7 @@
│ │ ├── operator_loc: (3,16)-(3,17) = "="
│ │ └── value:
│ │ @ IntegerNode (location: (3,17)-(3,18))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── rest: ∅
│ ├── posts: (length: 0)
diff --git a/test/prism/snapshots/whitequark/or.txt b/test/prism/snapshots/whitequark/or.txt
index 439146b8db..7a23781399 100644
--- a/test/prism/snapshots/whitequark/or.txt
+++ b/test/prism/snapshots/whitequark/or.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(3,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,10))
+ ├── flags: ∅
└── body: (length: 2)
├── @ OrNode (location: (1,0)-(1,10))
+ │ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -28,6 +31,7 @@
│ │ └── block: ∅
│ └── operator_loc: (1,4)-(1,6) = "or"
└── @ OrNode (location: (3,0)-(3,10))
+ ├── flags: newline
├── left:
│ @ CallNode (location: (3,0)-(3,3))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/or_asgn.txt b/test/prism/snapshots/whitequark/or_asgn.txt
index c0ded24b93..7234587b45 100644
--- a/test/prism/snapshots/whitequark/or_asgn.txt
+++ b/test/prism/snapshots/whitequark/or_asgn.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,15))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallOrWriteNode (location: (1,0)-(1,11))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -23,10 +25,10 @@
│ ├── operator_loc: (1,6)-(1,9) = "||="
│ └── value:
│ @ IntegerNode (location: (1,10)-(1,11))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
└── @ IndexOrWriteNode (location: (3,0)-(3,15))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (3,0)-(3,3))
│ ├── flags: variable_call, ignore_visibility
@@ -45,15 +47,15 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ IntegerNode (location: (3,4)-(3,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ └── @ IntegerNode (location: (3,7)-(3,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: (3,8)-(3,9) = "]"
├── block: ∅
├── operator_loc: (3,10)-(3,13) = "||="
└── value:
@ IntegerNode (location: (3,14)-(3,15))
- ├── flags: decimal
+ ├── flags: static_literal, decimal
└── value: 2
diff --git a/test/prism/snapshots/whitequark/parser_bug_272.txt b/test/prism/snapshots/whitequark/parser_bug_272.txt
index f158f255b9..64df1cf46d 100644
--- a/test/prism/snapshots/whitequark/parser_bug_272.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_272.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
@@ -15,15 +17,19 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ InstanceVariableReadNode (location: (1,2)-(1,4))
+ │ ├── flags: ∅
│ └── name: :@b
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,5)-(1,15))
+ ├── flags: ∅
├── locals: [:c]
├── parameters:
│ @ BlockParametersNode (location: (1,8)-(1,11))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,9)-(1,10))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,9)-(1,10))
│ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/whitequark/parser_bug_490.txt b/test/prism/snapshots/whitequark/parser_bug_490.txt
index 9e4cd2bd15..89a29c11f5 100644
--- a/test/prism/snapshots/whitequark/parser_bug_490.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_490.txt
@@ -1,30 +1,39 @@
@ ProgramNode (location: (1,0)-(5,45))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,45))
+ ├── flags: ∅
└── body: (length: 3)
├── @ DefNode (location: (1,0)-(1,39))
+ │ ├── flags: newline
│ ├── name: :m
│ ├── name_loc: (1,4)-(1,5) = "m"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,7)-(1,34))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ SingletonClassNode (location: (1,7)-(1,34))
+ │ │ ├── flags: newline
│ │ ├── locals: []
│ │ ├── class_keyword_loc: (1,7)-(1,12) = "class"
│ │ ├── operator_loc: (1,13)-(1,15) = "<<"
│ │ ├── expression:
│ │ │ @ SelfNode (location: (1,16)-(1,20))
+ │ │ │ └── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (1,22)-(1,29))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ ConstantWriteNode (location: (1,22)-(1,29))
+ │ │ │ ├── flags: newline
│ │ │ ├── name: :A
│ │ │ ├── name_loc: (1,22)-(1,23) = "A"
│ │ │ ├── value:
│ │ │ │ @ NilNode (location: (1,26)-(1,29))
+ │ │ │ │ └── flags: static_literal
│ │ │ └── operator_loc: (1,24)-(1,25) = "="
│ │ └── end_keyword_loc: (1,31)-(1,34) = "end"
│ ├── locals: []
@@ -35,27 +44,34 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (1,36)-(1,39) = "end"
├── @ DefNode (location: (3,0)-(3,44))
+ │ ├── flags: newline
│ ├── name: :m
│ ├── name_loc: (3,4)-(3,5) = "m"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (3,7)-(3,39))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ SingletonClassNode (location: (3,7)-(3,39))
+ │ │ ├── flags: newline
│ │ ├── locals: []
│ │ ├── class_keyword_loc: (3,7)-(3,12) = "class"
│ │ ├── operator_loc: (3,13)-(3,15) = "<<"
│ │ ├── expression:
│ │ │ @ SelfNode (location: (3,16)-(3,20))
+ │ │ │ └── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (3,22)-(3,34))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ ClassNode (location: (3,22)-(3,34))
+ │ │ │ ├── flags: newline
│ │ │ ├── locals: []
│ │ │ ├── class_keyword_loc: (3,22)-(3,27) = "class"
│ │ │ ├── constant_path:
│ │ │ │ @ ConstantReadNode (location: (3,28)-(3,29))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :C
│ │ │ ├── inheritance_operator_loc: ∅
│ │ │ ├── superclass: ∅
@@ -71,27 +87,34 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (3,41)-(3,44) = "end"
└── @ DefNode (location: (5,0)-(5,45))
+ ├── flags: newline
├── name: :m
├── name_loc: (5,4)-(5,5) = "m"
├── receiver: ∅
├── parameters: ∅
├── body:
│ @ StatementsNode (location: (5,7)-(5,40))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ SingletonClassNode (location: (5,7)-(5,40))
+ │ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (5,7)-(5,12) = "class"
│ ├── operator_loc: (5,13)-(5,15) = "<<"
│ ├── expression:
│ │ @ SelfNode (location: (5,16)-(5,20))
+ │ │ └── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (5,22)-(5,35))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ModuleNode (location: (5,22)-(5,35))
+ │ │ ├── flags: newline
│ │ ├── locals: []
│ │ ├── module_keyword_loc: (5,22)-(5,28) = "module"
│ │ ├── constant_path:
│ │ │ @ ConstantReadNode (location: (5,29)-(5,30))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :M
│ │ ├── body: ∅
│ │ ├── end_keyword_loc: (5,32)-(5,35) = "end"
diff --git a/test/prism/snapshots/whitequark/parser_bug_507.txt b/test/prism/snapshots/whitequark/parser_bug_507.txt
index 7e5fc9ee35..63a9169d01 100644
--- a/test/prism/snapshots/whitequark/parser_bug_507.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_507.txt
@@ -1,22 +1,28 @@
@ ProgramNode (location: (1,0)-(1,19))
+├── flags: ∅
├── locals: [:m]
└── statements:
@ StatementsNode (location: (1,0)-(1,19))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,19))
+ ├── flags: newline
├── name: :m
├── depth: 0
├── name_loc: (1,0)-(1,1) = "m"
├── value:
│ @ LambdaNode (location: (1,4)-(1,19))
+ │ ├── flags: ∅
│ ├── locals: [:args]
│ ├── operator_loc: (1,4)-(1,6) = "->"
│ ├── opening_loc: (1,13)-(1,15) = "do"
│ ├── closing_loc: (1,16)-(1,19) = "end"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,7)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (1,7)-(1,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest:
diff --git a/test/prism/snapshots/whitequark/parser_bug_518.txt b/test/prism/snapshots/whitequark/parser_bug_518.txt
index b63fbb8284..3341167b64 100644
--- a/test/prism/snapshots/whitequark/parser_bug_518.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_518.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(2,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,3))
+ ├── flags: ∅
└── body: (length: 1)
└── @ 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: (1,8)-(1,9) = "<"
├── superclass:
│ @ ConstantReadNode (location: (1,10)-(1,11))
+ │ ├── flags: ∅
│ └── name: :B
├── body: ∅
├── end_keyword_loc: (2,0)-(2,3) = "end"
diff --git a/test/prism/snapshots/whitequark/parser_bug_525.txt b/test/prism/snapshots/whitequark/parser_bug_525.txt
index 3a31a97cdc..46dca6f97d 100644
--- a/test/prism/snapshots/whitequark/parser_bug_525.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_525.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,32))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,32))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,32))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :m1
@@ -18,9 +20,10 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,3)-(1,11))
+ │ ├── flags: ∅
│ ├── key:
│ │ @ 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) = "k"
│ │ ├── closing_loc: ∅
@@ -40,13 +43,15 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,12)-(1,32))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── 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: :m3
@@ -56,6 +61,7 @@
│ ├── closing_loc: (1,19)-(1,20) = ")"
│ └── block:
│ @ BlockNode (location: (1,21)-(1,27))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
diff --git a/test/prism/snapshots/whitequark/parser_bug_604.txt b/test/prism/snapshots/whitequark/parser_bug_604.txt
index 2577e3bc55..aa58b2304f 100644
--- a/test/prism/snapshots/whitequark/parser_bug_604.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_604.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: :m
@@ -50,6 +52,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,8)-(1,14))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/parser_bug_640.txt b/test/prism/snapshots/whitequark/parser_bug_640.txt
index 157576838b..1e535e769b 100644
--- a/test/prism/snapshots/whitequark/parser_bug_640.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_640.txt
@@ -1,20 +1,22 @@
@ ProgramNode (location: (1,0)-(1,6))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,6))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── opening_loc: (1,0)-(1,6) = "<<~FOO"
├── parts: (length: 2)
│ ├── @ StringNode (location: (2,0)-(3,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (2,0)-(3,0) = " baz\\\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "baz"
│ └── @ StringNode (location: (3,0)-(4,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (3,0)-(4,0) = " qux\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/parser_bug_645.txt b/test/prism/snapshots/whitequark/parser_bug_645.txt
index 5700f3c3db..0aa65ebe03 100644
--- a/test/prism/snapshots/whitequark/parser_bug_645.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_645.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LambdaNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── locals: [:arg]
├── operator_loc: (1,0)-(1,2) = "->"
├── opening_loc: (1,12)-(1,13) = "{"
├── closing_loc: (1,13)-(1,14) = "}"
├── parameters:
│ @ BlockParametersNode (location: (1,3)-(1,11))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,4)-(1,10))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,4)-(1,10))
@@ -21,6 +26,7 @@
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ HashNode (location: (1,8)-(1,10))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (1,8)-(1,9) = "{"
│ │ │ ├── elements: (length: 0)
│ │ │ └── closing_loc: (1,9)-(1,10) = "}"
diff --git a/test/prism/snapshots/whitequark/parser_bug_830.txt b/test/prism/snapshots/whitequark/parser_bug_830.txt
index e52b291d6a..4adbe6256a 100644
--- a/test/prism/snapshots/whitequark/parser_bug_830.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_830.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ RegularExpressionNode (location: (1,0)-(1,4))
- ├── flags: forced_us_ascii_encoding
+ ├── flags: newline, static_literal, forced_us_ascii_encoding
├── opening_loc: (1,0)-(1,1) = "/"
├── content_loc: (1,1)-(1,3) = "\\("
├── closing_loc: (1,3)-(1,4) = "/"
diff --git a/test/prism/snapshots/whitequark/parser_bug_989.txt b/test/prism/snapshots/whitequark/parser_bug_989.txt
index c241d6127f..d0aec1ff5e 100644
--- a/test/prism/snapshots/whitequark/parser_bug_989.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_989.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,1)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,1)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,1)-(1,8))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,1)-(1,8) = "<<-HERE"
├── content_loc: (2,0)-(3,0) = "\t\tcontent\n"
├── closing_loc: (3,0)-(4,0) = "\tHERE\n"
diff --git a/test/prism/snapshots/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt b/test/prism/snapshots/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt
index 018d7916a6..3b0f46674b 100644
--- a/test/prism/snapshots/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt
+++ b/test/prism/snapshots/whitequark/parser_drops_truncated_parts_of_squiggly_heredoc.txt
@@ -1,18 +1,21 @@
@ ProgramNode (location: (1,0)-(1,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,7))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,7) = "<<~HERE"
├── parts: (length: 2)
│ ├── @ 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: ∅
diff --git a/test/prism/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt b/test/prism/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt
index 080d4d0e7d..ddd38a5ab7 100644
--- a/test/prism/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt
+++ b/test/prism/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt
@@ -1,19 +1,21 @@
@ ProgramNode (location: (1,0)-(62,2))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(62,2))
+ ├── flags: ∅
└── body: (length: 19)
├── @ StringNode (location: (1,0)-(2,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,1) = "\""
│ ├── content_loc: (1,1)-(2,1) = "a\\\nb"
│ ├── closing_loc: (2,1)-(2,2) = "\""
│ └── unescaped: "ab"
├── @ 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\\\nb"
│ │ ├── closing_loc: ∅
@@ -21,13 +23,13 @@
│ ├── opening_loc: (4,0)-(4,3) = "%I{"
│ └── closing_loc: (5,1)-(5,2) = "}"
├── @ StringNode (location: (7,0)-(8,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (7,0)-(7,3) = "%Q{"
│ ├── content_loc: (7,3)-(8,1) = "a\\\nb"
│ ├── closing_loc: (8,1)-(8,2) = "}"
│ └── unescaped: "ab"
├── @ ArrayNode (location: (10,0)-(11,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 1)
│ │ └── @ StringNode (location: (10,3)-(11,1))
│ │ ├── flags: ∅
@@ -38,10 +40,10 @@
│ ├── opening_loc: (10,0)-(10,3) = "%W{"
│ └── closing_loc: (11,1)-(11,2) = "}"
├── @ ArrayNode (location: (13,0)-(14,2))
- │ ├── flags: ∅
+ │ ├── flags: newline, static_literal
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (13,3)-(14,1))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (13,3)-(14,1) = "a\\\nb"
│ │ ├── closing_loc: ∅
@@ -49,25 +51,25 @@
│ ├── opening_loc: (13,0)-(13,3) = "%i{"
│ └── closing_loc: (14,1)-(14,2) = "}"
├── @ StringNode (location: (16,0)-(17,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (16,0)-(16,3) = "%q{"
│ ├── content_loc: (16,3)-(17,1) = "a\\\nb"
│ ├── closing_loc: (17,1)-(17,2) = "}"
│ └── unescaped: "a\\\nb"
├── @ RegularExpressionNode (location: (19,0)-(20,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (19,0)-(19,3) = "%r{"
│ ├── content_loc: (19,3)-(20,1) = "a\\\nb"
│ ├── closing_loc: (20,1)-(20,2) = "}"
│ └── unescaped: "ab"
├── @ SymbolNode (location: (22,0)-(23,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (22,0)-(22,3) = "%s{"
│ ├── value_loc: (22,3)-(23,1) = "a\\\nb"
│ ├── closing_loc: (23,1)-(23,2) = "}"
│ └── unescaped: "a\\\nb"
├── @ ArrayNode (location: (25,0)-(26,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── elements: (length: 1)
│ │ └── @ StringNode (location: (25,3)-(26,1))
│ │ ├── flags: ∅
@@ -78,61 +80,61 @@
│ ├── opening_loc: (25,0)-(25,3) = "%w{"
│ └── closing_loc: (26,1)-(26,2) = "}"
├── @ XStringNode (location: (28,0)-(29,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (28,0)-(28,3) = "%x{"
│ ├── content_loc: (28,3)-(29,1) = "a\\\nb"
│ ├── closing_loc: (29,1)-(29,2) = "}"
│ └── unescaped: "ab"
├── @ StringNode (location: (31,0)-(32,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (31,0)-(31,2) = "%{"
│ ├── content_loc: (31,2)-(32,1) = "a\\\nb"
│ ├── closing_loc: (32,1)-(32,2) = "}"
│ └── unescaped: "ab"
├── @ StringNode (location: (34,0)-(35,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (34,0)-(34,1) = "'"
│ ├── content_loc: (34,1)-(35,1) = "a\\\nb"
│ ├── closing_loc: (35,1)-(35,2) = "'"
│ └── unescaped: "a\\\nb"
├── @ RegularExpressionNode (location: (37,0)-(38,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (37,0)-(37,1) = "/"
│ ├── content_loc: (37,1)-(38,1) = "a\\\nb"
│ ├── closing_loc: (38,1)-(38,2) = "/"
│ └── unescaped: "ab"
├── @ SymbolNode (location: (40,0)-(41,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (40,0)-(40,2) = ":\""
│ ├── value_loc: (40,2)-(41,1) = "a\\\nb"
│ ├── closing_loc: (41,1)-(41,2) = "\""
│ └── unescaped: "ab"
├── @ SymbolNode (location: (43,0)-(44,2))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (43,0)-(43,2) = ":'"
│ ├── value_loc: (43,2)-(44,1) = "a\\\nb"
│ ├── closing_loc: (44,1)-(44,2) = "'"
│ └── unescaped: "a\\\nb"
├── @ StringNode (location: (46,0)-(46,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (46,0)-(46,9) = "<<-\"HERE\""
│ ├── content_loc: (47,0)-(49,0) = "a\\\nb\n"
│ ├── closing_loc: (49,0)-(50,0) = "HERE\n"
│ └── unescaped: "ab\n"
├── @ StringNode (location: (51,0)-(51,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (51,0)-(51,9) = "<<-'HERE'"
│ ├── content_loc: (52,0)-(54,0) = "a\\\nb\n"
│ ├── closing_loc: (54,0)-(55,0) = "HERE\n"
│ └── unescaped: "a\\\nb\n"
├── @ XStringNode (location: (56,0)-(56,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (56,0)-(56,9) = "<<-`HERE`"
│ ├── content_loc: (57,0)-(59,0) = "a\\\nb\n"
│ ├── closing_loc: (59,0)-(60,0) = "HERE\n"
│ └── unescaped: "ab\n"
└── @ XStringNode (location: (61,0)-(62,2))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (61,0)-(61,1) = "`"
├── content_loc: (61,1)-(62,1) = "a\\\nb"
├── closing_loc: (62,1)-(62,2) = "`"
diff --git a/test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt b/test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt
index 6f315780ad..e999ae406e 100644
--- a/test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt
+++ b/test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,8)-(3,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,8)-(3,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseMatchNode (location: (1,8)-(3,11))
+ ├── flags: newline
├── predicate:
│ @ ArrayNode (location: (1,13)-(1,51))
│ ├── flags: ∅
@@ -15,6 +18,7 @@
│ │ │ ├── flags: ∅
│ │ │ ├── receiver:
│ │ │ │ @ SourceLineNode (location: (1,24)-(1,32))
+ │ │ │ │ └── flags: static_literal
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :+
│ │ │ ├── message_loc: (1,33)-(1,34) = "+"
@@ -24,24 +28,29 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (1,35)-(1,36))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── @ SourceEncodingNode (location: (1,38)-(1,50))
+ │ │ └── flags: static_literal
│ ├── opening_loc: (1,13)-(1,14) = "["
│ └── closing_loc: (1,50)-(1,51) = "]"
├── conditions: (length: 1)
│ └── @ InNode (location: (2,10)-(2,47))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ ArrayPatternNode (location: (2,13)-(2,47))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── requireds: (length: 3)
│ │ │ ├── @ SourceFileNode (location: (2,14)-(2,22))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── filepath: "whitequark/pattern_matching__FILE__LINE_literals.txt"
│ │ │ ├── @ SourceLineNode (location: (2,24)-(2,32))
+ │ │ │ │ └── flags: static_literal
│ │ │ └── @ SourceEncodingNode (location: (2,34)-(2,46))
+ │ │ │ └── flags: static_literal
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── opening_loc: (2,13)-(2,14) = "["
diff --git a/test/prism/snapshots/whitequark/pattern_matching_blank_else.txt b/test/prism/snapshots/whitequark/pattern_matching_blank_else.txt
index 6015c000a9..be8c5979ef 100644
--- a/test/prism/snapshots/whitequark/pattern_matching_blank_else.txt
+++ b/test/prism/snapshots/whitequark/pattern_matching_blank_else.txt
@@ -1,29 +1,35 @@
@ ProgramNode (location: (1,0)-(1,26))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,26))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseMatchNode (location: (1,0)-(1,26))
+ ├── flags: newline
├── predicate:
│ @ IntegerNode (location: (1,5)-(1,6))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── conditions: (length: 1)
│ └── @ InNode (location: (1,8)-(1,15))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ IntegerNode (location: (1,11)-(1,12))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── statements:
│ │ @ StatementsNode (location: (1,14)-(1,15))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (1,14)-(1,15))
- │ │ ├── flags: decimal
+ │ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 3
│ ├── in_loc: (1,8)-(1,10) = "in"
│ └── then_loc: ∅
├── consequent:
│ @ ElseNode (location: (1,17)-(1,26))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,17)-(1,21) = "else"
│ ├── statements: ∅
│ └── end_keyword_loc: (1,23)-(1,26) = "end"
diff --git a/test/prism/snapshots/whitequark/pattern_matching_else.txt b/test/prism/snapshots/whitequark/pattern_matching_else.txt
index 7f83aafe99..62881bc33a 100644
--- a/test/prism/snapshots/whitequark/pattern_matching_else.txt
+++ b/test/prism/snapshots/whitequark/pattern_matching_else.txt
@@ -1,35 +1,42 @@
@ ProgramNode (location: (1,0)-(1,29))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,29))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseMatchNode (location: (1,0)-(1,29))
+ ├── flags: newline
├── predicate:
│ @ IntegerNode (location: (1,5)-(1,6))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── conditions: (length: 1)
│ └── @ InNode (location: (1,8)-(1,15))
+ │ ├── flags: ∅
│ ├── pattern:
│ │ @ IntegerNode (location: (1,11)-(1,12))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── statements:
│ │ @ StatementsNode (location: (1,14)-(1,15))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (1,14)-(1,15))
- │ │ ├── flags: decimal
+ │ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 3
│ ├── in_loc: (1,8)-(1,10) = "in"
│ └── then_loc: ∅
├── consequent:
│ @ ElseNode (location: (1,17)-(1,29))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,17)-(1,21) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (1,23)-(1,24))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (1,23)-(1,24))
- │ │ ├── flags: decimal
+ │ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 4
│ └── end_keyword_loc: (1,26)-(1,29) = "end"
├── case_keyword_loc: (1,0)-(1,4) = "case"
diff --git a/test/prism/snapshots/whitequark/pattern_matching_single_line.txt b/test/prism/snapshots/whitequark/pattern_matching_single_line.txt
index 2396172dce..f11ec00951 100644
--- a/test/prism/snapshots/whitequark/pattern_matching_single_line.txt
+++ b/test/prism/snapshots/whitequark/pattern_matching_single_line.txt
@@ -1,18 +1,23 @@
@ ProgramNode (location: (1,0)-(3,11))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(3,11))
+ ├── 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,18 +26,22 @@
│ │ └── closing_loc: (1,7)-(1,8) = "]"
│ └── operator_loc: (1,2)-(1,4) = "=>"
├── @ LocalVariableReadNode (location: (1,10)-(1,11))
+ │ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── @ MatchPredicateNode (location: (3,0)-(3,8))
+ │ ├── flags: newline
│ ├── value:
│ │ @ IntegerNode (location: (3,0)-(3,1))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── pattern:
│ │ @ ArrayPatternNode (location: (3,5)-(3,8))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ LocalVariableTargetNode (location: (3,6)-(3,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :a
│ │ │ └── depth: 0
│ │ ├── rest: ∅
@@ -41,5 +50,6 @@
│ │ └── closing_loc: (3,7)-(3,8) = "]"
│ └── operator_loc: (3,2)-(3,4) = "in"
└── @ LocalVariableReadNode (location: (3,10)-(3,11))
+ ├── flags: newline
├── name: :a
└── depth: 0
diff --git a/test/prism/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt b/test/prism/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt
index 757a7780c2..51542e9dd2 100644
--- a/test/prism/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt
+++ b/test/prism/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt
@@ -1,29 +1,35 @@
@ ProgramNode (location: (1,0)-(11,34))
+├── flags: ∅
├── locals: [:a, :b, :value]
└── statements:
@ StatementsNode (location: (1,0)-(11,34))
+ ├── flags: ∅
└── body: (length: 12)
├── @ MatchRequiredNode (location: (1,0)-(1,14))
+ │ ├── flags: newline
│ ├── value:
│ │ @ ArrayNode (location: (1,0)-(1,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ 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
│ │ ├── opening_loc: (1,0)-(1,1) = "["
│ │ └── closing_loc: (1,5)-(1,6) = "]"
│ ├── pattern:
│ │ @ ArrayPatternNode (location: (1,10)-(1,14))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ LocalVariableTargetNode (location: (1,10)-(1,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableTargetNode (location: (1,13)-(1,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ └── depth: 0
│ │ ├── rest: ∅
@@ -32,29 +38,34 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (1,7)-(1,9) = "=>"
├── @ LocalVariableReadNode (location: (1,16)-(1,17))
+ │ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── @ MatchPredicateNode (location: (3,0)-(3,14))
+ │ ├── flags: newline
│ ├── value:
│ │ @ ArrayNode (location: (3,0)-(3,6))
- │ │ ├── flags: ∅
+ │ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ IntegerNode (location: (3,1)-(3,2))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ IntegerNode (location: (3,4)-(3,5))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── opening_loc: (3,0)-(3,1) = "["
│ │ └── closing_loc: (3,5)-(3,6) = "]"
│ ├── pattern:
│ │ @ ArrayPatternNode (location: (3,10)-(3,14))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ LocalVariableTargetNode (location: (3,10)-(3,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableTargetNode (location: (3,13)-(3,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ └── depth: 0
│ │ ├── rest: ∅
@@ -63,43 +74,51 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (3,7)-(3,9) = "in"
├── @ LocalVariableReadNode (location: (3,16)-(3,17))
+ │ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── @ MatchRequiredNode (location: (5,0)-(5,12))
+ │ ├── flags: newline
│ ├── value:
│ │ @ HashNode (location: (5,0)-(5,6))
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (5,0)-(5,1) = "{"
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (5,1)-(5,5))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── 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:
│ │ │ │ @ IntegerNode (location: (5,4)-(5,5))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── operator_loc: ∅
│ │ └── closing_loc: (5,5)-(5,6) = "}"
│ ├── pattern:
│ │ @ HashPatternNode (location: (5,10)-(5,12))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (5,10)-(5,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (5,10)-(5,12))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (5,10)-(5,11) = "a"
│ │ │ │ ├── closing_loc: (5,11)-(5,12) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (5,10)-(5,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ LocalVariableTargetNode (location: (5,10)-(5,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: ∅
@@ -108,43 +127,51 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (5,7)-(5,9) = "=>"
├── @ LocalVariableReadNode (location: (5,14)-(5,15))
+ │ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── @ MatchPredicateNode (location: (7,0)-(7,12))
+ │ ├── flags: newline
│ ├── value:
│ │ @ HashNode (location: (7,0)-(7,6))
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (7,0)-(7,1) = "{"
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (7,1)-(7,5))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (7,1)-(7,3))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (7,1)-(7,2) = "a"
│ │ │ │ ├── closing_loc: (7,2)-(7,3) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (7,4)-(7,5))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── operator_loc: ∅
│ │ └── closing_loc: (7,5)-(7,6) = "}"
│ ├── pattern:
│ │ @ HashPatternNode (location: (7,10)-(7,12))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (7,10)-(7,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (7,10)-(7,12))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (7,10)-(7,11) = "a"
│ │ │ │ ├── closing_loc: (7,11)-(7,12) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (7,10)-(7,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ LocalVariableTargetNode (location: (7,10)-(7,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: ∅
@@ -153,24 +180,28 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (7,7)-(7,9) = "in"
├── @ LocalVariableReadNode (location: (7,14)-(7,15))
+ │ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── @ MatchRequiredNode (location: (9,0)-(9,27))
+ │ ├── flags: newline
│ ├── value:
│ │ @ HashNode (location: (9,0)-(9,13))
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (9,0)-(9,1) = "{"
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (9,1)-(9,12))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (9,1)-(9,5))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (9,1)-(9,4) = "key"
│ │ │ │ ├── closing_loc: (9,4)-(9,5) = ":"
│ │ │ │ └── unescaped: "key"
│ │ │ ├── value:
│ │ │ │ @ SymbolNode (location: (9,6)-(9,12))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (9,6)-(9,7) = ":"
│ │ │ │ ├── value_loc: (9,7)-(9,12) = "value"
│ │ │ │ ├── closing_loc: ∅
@@ -179,18 +210,21 @@
│ │ └── closing_loc: (9,12)-(9,13) = "}"
│ ├── pattern:
│ │ @ HashPatternNode (location: (9,17)-(9,27))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (9,17)-(9,27))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (9,17)-(9,21))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (9,17)-(9,20) = "key"
│ │ │ │ ├── closing_loc: (9,20)-(9,21) = ":"
│ │ │ │ └── unescaped: "key"
│ │ │ ├── value:
│ │ │ │ @ LocalVariableTargetNode (location: (9,22)-(9,27))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :value
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: ∅
@@ -199,24 +233,28 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (9,14)-(9,16) = "=>"
├── @ LocalVariableReadNode (location: (9,29)-(9,34))
+ │ ├── flags: newline
│ ├── name: :value
│ └── depth: 0
├── @ MatchPredicateNode (location: (11,0)-(11,27))
+ │ ├── flags: newline
│ ├── value:
│ │ @ HashNode (location: (11,0)-(11,13))
+ │ │ ├── flags: static_literal
│ │ ├── opening_loc: (11,0)-(11,1) = "{"
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (11,1)-(11,12))
+ │ │ │ ├── flags: static_literal
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (11,1)-(11,5))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (11,1)-(11,4) = "key"
│ │ │ │ ├── closing_loc: (11,4)-(11,5) = ":"
│ │ │ │ └── unescaped: "key"
│ │ │ ├── value:
│ │ │ │ @ SymbolNode (location: (11,6)-(11,12))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (11,6)-(11,7) = ":"
│ │ │ │ ├── value_loc: (11,7)-(11,12) = "value"
│ │ │ │ ├── closing_loc: ∅
@@ -225,18 +263,21 @@
│ │ └── closing_loc: (11,12)-(11,13) = "}"
│ ├── pattern:
│ │ @ HashPatternNode (location: (11,17)-(11,27))
+ │ │ ├── flags: ∅
│ │ ├── constant: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (11,17)-(11,27))
+ │ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (11,17)-(11,21))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (11,17)-(11,20) = "key"
│ │ │ │ ├── closing_loc: (11,20)-(11,21) = ":"
│ │ │ │ └── unescaped: "key"
│ │ │ ├── value:
│ │ │ │ @ LocalVariableTargetNode (location: (11,22)-(11,27))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :value
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: ∅
@@ -245,5 +286,6 @@
│ │ └── closing_loc: ∅
│ └── operator_loc: (11,14)-(11,16) = "in"
└── @ LocalVariableReadNode (location: (11,29)-(11,34))
+ ├── flags: newline
├── name: :value
└── depth: 0
diff --git a/test/prism/snapshots/whitequark/postexe.txt b/test/prism/snapshots/whitequark/postexe.txt
index 6f27327063..f4648b8a98 100644
--- a/test/prism/snapshots/whitequark/postexe.txt
+++ b/test/prism/snapshots/whitequark/postexe.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,9))
+ ├── flags: ∅
└── body: (length: 1)
└── @ PostExecutionNode (location: (1,0)-(1,9))
+ ├── flags: newline
├── statements:
│ @ 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
├── keyword_loc: (1,0)-(1,3) = "END"
├── opening_loc: (1,4)-(1,5) = "{"
diff --git a/test/prism/snapshots/whitequark/preexe.txt b/test/prism/snapshots/whitequark/preexe.txt
index 5e4b88d096..f9fe60d07a 100644
--- a/test/prism/snapshots/whitequark/preexe.txt
+++ b/test/prism/snapshots/whitequark/preexe.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ PreExecutionNode (location: (1,0)-(1,11))
+ ├── flags: newline
├── statements:
│ @ 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
├── keyword_loc: (1,0)-(1,5) = "BEGIN"
├── opening_loc: (1,6)-(1,7) = "{"
diff --git a/test/prism/snapshots/whitequark/procarg0.txt b/test/prism/snapshots/whitequark/procarg0.txt
index 378c7e5b36..90e03ce940 100644
--- a/test/prism/snapshots/whitequark/procarg0.txt
+++ b/test/prism/snapshots/whitequark/procarg0.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,11))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,18))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :m
@@ -14,13 +16,17 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,2)-(1,18))
+ │ ├── flags: ∅
│ ├── locals: [:foo, :bar]
│ ├── 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: 2)
│ │ │ │ │ ├── @ RequiredParameterNode (location: (1,6)-(1,9))
│ │ │ │ │ │ ├── flags: ∅
@@ -45,7 +51,7 @@
│ ├── opening_loc: (1,2)-(1,3) = "{"
│ └── closing_loc: (1,17)-(1,18) = "}"
└── @ CallNode (location: (3,0)-(3,11))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :m
@@ -55,11 +61,14 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (3,2)-(3,11))
+ ├── flags: ∅
├── locals: [:foo]
├── parameters:
│ @ BlockParametersNode (location: (3,4)-(3,9))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (3,5)-(3,8))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (3,5)-(3,8))
│ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/whitequark/range_exclusive.txt b/test/prism/snapshots/whitequark/range_exclusive.txt
index f74077ce67..2351c33fbc 100644
--- a/test/prism/snapshots/whitequark/range_exclusive.txt
+++ b/test/prism/snapshots/whitequark/range_exclusive.txt
@@ -1,16 +1,18 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ RangeNode (location: (1,0)-(1,5))
- ├── flags: exclude_end
+ ├── flags: newline, static_literal, exclude_end
├── left:
│ @ IntegerNode (location: (1,0)-(1,1))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── right:
│ @ IntegerNode (location: (1,4)-(1,5))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
└── operator_loc: (1,1)-(1,4) = "..."
diff --git a/test/prism/snapshots/whitequark/range_inclusive.txt b/test/prism/snapshots/whitequark/range_inclusive.txt
index 1836312033..6d703816d6 100644
--- a/test/prism/snapshots/whitequark/range_inclusive.txt
+++ b/test/prism/snapshots/whitequark/range_inclusive.txt
@@ -1,16 +1,18 @@
@ 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: ∅
+ ├── flags: newline, static_literal
├── left:
│ @ IntegerNode (location: (1,0)-(1,1))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── right:
│ @ IntegerNode (location: (1,3)-(1,4))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
└── operator_loc: (1,1)-(1,3) = ".."
diff --git a/test/prism/snapshots/whitequark/rational.txt b/test/prism/snapshots/whitequark/rational.txt
index e8c8eed508..f35fa5b5e3 100644
--- a/test/prism/snapshots/whitequark/rational.txt
+++ b/test/prism/snapshots/whitequark/rational.txt
@@ -1,13 +1,15 @@
@ ProgramNode (location: (1,0)-(3,3))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
+ ├── flags: ∅
└── body: (length: 2)
├── @ RationalNode (location: (1,0)-(1,5))
- │ ├── flags: decimal
+ │ ├── flags: newline, static_literal, decimal
│ ├── numerator: 421
│ └── denominator: 10
└── @ RationalNode (location: (3,0)-(3,3))
- ├── flags: decimal
+ ├── flags: newline, static_literal, decimal
├── numerator: 42
└── denominator: 1
diff --git a/test/prism/snapshots/whitequark/regex_interp.txt b/test/prism/snapshots/whitequark/regex_interp.txt
index 0a6db4cfdf..e440274cc2 100644
--- a/test/prism/snapshots/whitequark/regex_interp.txt
+++ b/test/prism/snapshots/whitequark/regex_interp.txt
@@ -1,22 +1,26 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedRegularExpressionNode (location: (1,0)-(1,14))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "/"
├── parts: (length: 3)
│ ├── @ StringNode (location: (1,1)-(1,4))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,1)-(1,4) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── @ EmbeddedStatementsNode (location: (1,4)-(1,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,4)-(1,6) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,6)-(1,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,6)-(1,9))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -30,7 +34,7 @@
│ │ │ └── block: ∅
│ │ └── closing_loc: (1,9)-(1,10) = "}"
│ └── @ StringNode (location: (1,10)-(1,13))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (1,10)-(1,13) = "baz"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/regex_plain.txt b/test/prism/snapshots/whitequark/regex_plain.txt
index df771f7a21..44dde97c79 100644
--- a/test/prism/snapshots/whitequark/regex_plain.txt
+++ b/test/prism/snapshots/whitequark/regex_plain.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ RegularExpressionNode (location: (1,0)-(1,10))
- ├── flags: ignore_case, multi_line, forced_us_ascii_encoding
+ ├── flags: newline, static_literal, ignore_case, multi_line, forced_us_ascii_encoding
├── opening_loc: (1,0)-(1,1) = "/"
├── content_loc: (1,1)-(1,7) = "source"
├── closing_loc: (1,7)-(1,10) = "/im"
diff --git a/test/prism/snapshots/whitequark/resbody_list.txt b/test/prism/snapshots/whitequark/resbody_list.txt
index 52fcfd02e0..b7d1292a49 100644
--- a/test/prism/snapshots/whitequark/resbody_list.txt
+++ b/test/prism/snapshots/whitequark/resbody_list.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(1,39))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,39))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,39))
+ ├── 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
@@ -20,17 +24,20 @@
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (1,13)-(1,34))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,13)-(1,19) = "rescue"
│ ├── exceptions: (length: 1)
│ │ └── @ ConstantReadNode (location: (1,20)-(1,29))
+ │ │ ├── flags: ∅
│ │ └── name: :Exception
│ ├── operator_loc: ∅
│ ├── reference: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (1,31)-(1,34))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,31)-(1,34))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/resbody_list_mrhs.txt b/test/prism/snapshots/whitequark/resbody_list_mrhs.txt
index d48ddb120d..ba1e338700 100644
--- a/test/prism/snapshots/whitequark/resbody_list_mrhs.txt
+++ b/test/prism/snapshots/whitequark/resbody_list_mrhs.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(1,44))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,44))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,44))
+ ├── 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
@@ -20,9 +24,11 @@
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (1,13)-(1,39))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,13)-(1,19) = "rescue"
│ ├── exceptions: (length: 2)
│ │ ├── @ ConstantReadNode (location: (1,20)-(1,29))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :Exception
│ │ └── @ CallNode (location: (1,31)-(1,34))
│ │ ├── flags: variable_call, ignore_visibility
@@ -38,9 +44,10 @@
│ ├── reference: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (1,36)-(1,39))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,36)-(1,39))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/resbody_list_var.txt b/test/prism/snapshots/whitequark/resbody_list_var.txt
index 85efb1a3de..1c9f03c0cf 100644
--- a/test/prism/snapshots/whitequark/resbody_list_var.txt
+++ b/test/prism/snapshots/whitequark/resbody_list_var.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(1,39))
+├── flags: ∅
├── locals: [:ex]
└── statements:
@ StatementsNode (location: (1,0)-(1,39))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,39))
+ ├── 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
@@ -20,6 +24,7 @@
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (1,13)-(1,34))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,13)-(1,19) = "rescue"
│ ├── exceptions: (length: 1)
│ │ └── @ CallNode (location: (1,20)-(1,23))
@@ -35,13 +40,15 @@
│ ├── operator_loc: (1,24)-(1,26) = "=>"
│ ├── reference:
│ │ @ LocalVariableTargetNode (location: (1,27)-(1,29))
+ │ │ ├── flags: ∅
│ │ ├── name: :ex
│ │ └── depth: 0
│ ├── statements:
│ │ @ StatementsNode (location: (1,31)-(1,34))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,31)-(1,34))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/resbody_var.txt b/test/prism/snapshots/whitequark/resbody_var.txt
index e12d921c75..114064ecce 100644
--- a/test/prism/snapshots/whitequark/resbody_var.txt
+++ b/test/prism/snapshots/whitequark/resbody_var.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(3,35))
+├── flags: ∅
├── locals: [:ex]
└── statements:
@ StatementsNode (location: (1,0)-(3,35))
+ ├── flags: ∅
└── body: (length: 2)
├── @ BeginNode (location: (1,0)-(1,36))
+ │ ├── 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
@@ -20,17 +24,20 @@
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (1,13)-(1,31))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (1,13)-(1,19) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: (1,20)-(1,22) = "=>"
│ │ ├── reference:
│ │ │ @ InstanceVariableTargetNode (location: (1,23)-(1,26))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :@ex
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,28)-(1,31))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,28)-(1,31))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
@@ -44,12 +51,14 @@
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (1,33)-(1,36) = "end"
└── @ BeginNode (location: (3,0)-(3,35))
+ ├── flags: newline
├── begin_keyword_loc: (3,0)-(3,5) = "begin"
├── statements:
│ @ StatementsNode (location: (3,7)-(3,11))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (3,7)-(3,11))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :meth
@@ -60,18 +69,21 @@
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (3,13)-(3,30))
+ │ ├── flags: ∅
│ ├── keyword_loc: (3,13)-(3,19) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: (3,20)-(3,22) = "=>"
│ ├── reference:
│ │ @ LocalVariableTargetNode (location: (3,23)-(3,25))
+ │ │ ├── flags: ∅
│ │ ├── name: :ex
│ │ └── depth: 0
│ ├── statements:
│ │ @ StatementsNode (location: (3,27)-(3,30))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (3,27)-(3,30))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/rescue.txt b/test/prism/snapshots/whitequark/rescue.txt
index 28c4f11e67..388d6212f5 100644
--- a/test/prism/snapshots/whitequark/rescue.txt
+++ b/test/prism/snapshots/whitequark/rescue.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
@@ -20,15 +24,17 @@
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (1,13)-(1,24))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,13)-(1,19) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: ∅
│ ├── reference: ∅
│ ├── 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: :foo
diff --git a/test/prism/snapshots/whitequark/rescue_else.txt b/test/prism/snapshots/whitequark/rescue_else.txt
index 36b01a7ef6..cbb68160e7 100644
--- a/test/prism/snapshots/whitequark/rescue_else.txt
+++ b/test/prism/snapshots/whitequark/rescue_else.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(1,40))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,40))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,40))
+ ├── 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
@@ -20,15 +24,17 @@
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (1,13)-(1,24))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,13)-(1,19) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: ∅
│ ├── reference: ∅
│ ├── 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: :foo
@@ -40,12 +46,14 @@
│ └── consequent: ∅
├── else_clause:
│ @ ElseNode (location: (1,26)-(1,40))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,26)-(1,30) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (1,32)-(1,35))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,32)-(1,35))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/rescue_else_ensure.txt b/test/prism/snapshots/whitequark/rescue_else_ensure.txt
index d97821931b..5b9f0e210b 100644
--- a/test/prism/snapshots/whitequark/rescue_else_ensure.txt
+++ b/test/prism/snapshots/whitequark/rescue_else_ensure.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(1,51))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,51))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,51))
+ ├── 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
@@ -20,15 +24,17 @@
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (1,13)-(1,24))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,13)-(1,19) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: ∅
│ ├── reference: ∅
│ ├── 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: :baz
@@ -40,12 +46,14 @@
│ └── consequent: ∅
├── else_clause:
│ @ ElseNode (location: (1,26)-(1,42))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,26)-(1,30) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (1,31)-(1,34))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,31)-(1,34))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
@@ -57,12 +65,14 @@
│ └── end_keyword_loc: (1,36)-(1,42) = "ensure"
├── ensure_clause:
│ @ EnsureNode (location: (1,36)-(1,51))
+ │ ├── flags: ∅
│ ├── ensure_keyword_loc: (1,36)-(1,42) = "ensure"
│ ├── statements:
│ │ @ StatementsNode (location: (1,44)-(1,47))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,44)-(1,47))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/rescue_ensure.txt b/test/prism/snapshots/whitequark/rescue_ensure.txt
index f6cddbcc5e..e0f02cba9a 100644
--- a/test/prism/snapshots/whitequark/rescue_ensure.txt
+++ b/test/prism/snapshots/whitequark/rescue_ensure.txt
@@ -1,15 +1,19 @@
@ ProgramNode (location: (1,0)-(1,42))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,42))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,42))
+ ├── 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
@@ -20,15 +24,17 @@
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (1,13)-(1,24))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,13)-(1,19) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: ∅
│ ├── reference: ∅
│ ├── 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: :baz
@@ -41,12 +47,14 @@
├── else_clause: ∅
├── ensure_clause:
│ @ EnsureNode (location: (1,26)-(1,42))
+ │ ├── flags: ∅
│ ├── ensure_keyword_loc: (1,26)-(1,32) = "ensure"
│ ├── statements:
│ │ @ StatementsNode (location: (1,34)-(1,37))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,34)-(1,37))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/rescue_in_lambda_block.txt b/test/prism/snapshots/whitequark/rescue_in_lambda_block.txt
index 2ab854cdd7..ae6285af3a 100644
--- a/test/prism/snapshots/whitequark/rescue_in_lambda_block.txt
+++ b/test/prism/snapshots/whitequark/rescue_in_lambda_block.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,17))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,17))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LambdaNode (location: (1,0)-(1,17))
+ ├── flags: newline
├── locals: []
├── operator_loc: (1,0)-(1,2) = "->"
├── opening_loc: (1,3)-(1,5) = "do"
@@ -11,10 +14,12 @@
├── parameters: ∅
└── body:
@ BeginNode (location: (1,3)-(1,17))
+ ├── flags: ∅
├── begin_keyword_loc: ∅
├── statements: ∅
├── rescue_clause:
│ @ RescueNode (location: (1,6)-(1,12))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,6)-(1,12) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: ∅
diff --git a/test/prism/snapshots/whitequark/rescue_mod.txt b/test/prism/snapshots/whitequark/rescue_mod.txt
index cd4f0fff45..abed85c1b9 100644
--- a/test/prism/snapshots/whitequark/rescue_mod.txt
+++ b/test/prism/snapshots/whitequark/rescue_mod.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ RescueModifierNode (location: (1,0)-(1,15))
+ ├── flags: newline
├── expression:
│ @ CallNode (location: (1,0)-(1,4))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/rescue_mod_asgn.txt b/test/prism/snapshots/whitequark/rescue_mod_asgn.txt
index ee094138e5..a2fa161e4e 100644
--- a/test/prism/snapshots/whitequark/rescue_mod_asgn.txt
+++ b/test/prism/snapshots/whitequark/rescue_mod_asgn.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,21))
+├── flags: ∅
├── locals: [:foo]
└── statements:
@ StatementsNode (location: (1,0)-(1,21))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableWriteNode (location: (1,0)-(1,21))
+ ├── flags: newline
├── name: :foo
├── depth: 0
├── name_loc: (1,0)-(1,3) = "foo"
├── value:
│ @ RescueModifierNode (location: (1,6)-(1,21))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (1,6)-(1,10))
│ │ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/rescue_mod_masgn.txt b/test/prism/snapshots/whitequark/rescue_mod_masgn.txt
index dbe289702f..b5ca37b129 100644
--- a/test/prism/snapshots/whitequark/rescue_mod_masgn.txt
+++ b/test/prism/snapshots/whitequark/rescue_mod_masgn.txt
@@ -1,14 +1,19 @@
@ ProgramNode (location: (1,0)-(1,29))
+├── flags: ∅
├── locals: [:foo, :bar]
└── statements:
@ StatementsNode (location: (1,0)-(1,29))
+ ├── flags: ∅
└── body: (length: 1)
└── @ MultiWriteNode (location: (1,0)-(1,29))
+ ├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (1,0)-(1,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (1,5)-(1,8))
+ │ ├── flags: ∅
│ ├── name: :bar
│ └── depth: 0
├── rest: ∅
@@ -18,6 +23,7 @@
├── operator_loc: (1,9)-(1,10) = "="
└── value:
@ RescueModifierNode (location: (1,11)-(1,29))
+ ├── flags: ∅
├── expression:
│ @ CallNode (location: (1,11)-(1,15))
│ ├── flags: variable_call, ignore_visibility
@@ -32,13 +38,13 @@
├── keyword_loc: (1,16)-(1,22) = "rescue"
└── rescue_expression:
@ ArrayNode (location: (1,23)-(1,29))
- ├── flags: ∅
+ ├── flags: static_literal
├── elements: (length: 2)
│ ├── @ IntegerNode (location: (1,24)-(1,25))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ IntegerNode (location: (1,27)-(1,28))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
├── opening_loc: (1,23)-(1,24) = "["
└── closing_loc: (1,28)-(1,29) = "]"
diff --git a/test/prism/snapshots/whitequark/rescue_mod_op_assign.txt b/test/prism/snapshots/whitequark/rescue_mod_op_assign.txt
index 840e5a4fc0..22101d7c98 100644
--- a/test/prism/snapshots/whitequark/rescue_mod_op_assign.txt
+++ b/test/prism/snapshots/whitequark/rescue_mod_op_assign.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(1,22))
+├── flags: ∅
├── locals: [:foo]
└── statements:
@ StatementsNode (location: (1,0)-(1,22))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableOperatorWriteNode (location: (1,0)-(1,22))
+ ├── flags: newline
├── name_loc: (1,0)-(1,3) = "foo"
├── binary_operator_loc: (1,4)-(1,6) = "+="
├── value:
│ @ RescueModifierNode (location: (1,7)-(1,22))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (1,7)-(1,11))
│ │ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/rescue_without_begin_end.txt b/test/prism/snapshots/whitequark/rescue_without_begin_end.txt
index 4281442ab2..e6ec38d27d 100644
--- a/test/prism/snapshots/whitequark/rescue_without_begin_end.txt
+++ b/test/prism/snapshots/whitequark/rescue_without_begin_end.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: :meth
@@ -14,16 +16,19 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,5)-(1,30))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body:
│ @ BeginNode (location: (1,5)-(1,30))
+ │ ├── flags: ∅
│ ├── begin_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (1,9)-(1,12))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,9)-(1,12))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
@@ -34,15 +39,17 @@
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (1,14)-(1,25))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (1,14)-(1,20) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,22)-(1,25))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,22)-(1,25))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/restarg_named.txt b/test/prism/snapshots/whitequark/restarg_named.txt
index fab9dd9a79..0bb6b9d2ba 100644
--- a/test/prism/snapshots/whitequark/restarg_named.txt
+++ b/test/prism/snapshots/whitequark/restarg_named.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,16))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,16))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,16))
+ ├── 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/whitequark/restarg_unnamed.txt b/test/prism/snapshots/whitequark/restarg_unnamed.txt
index 077230f7ba..0fc102a82c 100644
--- a/test/prism/snapshots/whitequark/restarg_unnamed.txt
+++ b/test/prism/snapshots/whitequark/restarg_unnamed.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: :f
├── name_loc: (1,4)-(1,5) = "f"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (1,6)-(1,7))
+ │ ├── flags: ∅
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
│ ├── rest:
diff --git a/test/prism/snapshots/whitequark/return.txt b/test/prism/snapshots/whitequark/return.txt
index 5c98259103..1e059ba63c 100644
--- a/test/prism/snapshots/whitequark/return.txt
+++ b/test/prism/snapshots/whitequark/return.txt
@@ -1,14 +1,16 @@
@ ProgramNode (location: (1,0)-(7,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(7,11))
+ ├── flags: ∅
└── body: (length: 4)
├── @ ReturnNode (location: (1,0)-(1,6))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,6) = "return"
│ └── arguments: ∅
├── @ ReturnNode (location: (3,0)-(3,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (3,0)-(3,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (3,7)-(3,10))
@@ -25,29 +27,32 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ ReturnNode (location: (5,0)-(5,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (5,0)-(5,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (5,6)-(5,8))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (5,6)-(5,8))
+ │ ├── flags: ∅
│ ├── body: ∅
│ ├── opening_loc: (5,6)-(5,7) = "("
│ └── closing_loc: (5,7)-(5,8) = ")"
└── @ ReturnNode (location: (7,0)-(7,11))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (7,0)-(7,6) = "return"
└── arguments:
@ ArgumentsNode (location: (7,6)-(7,11))
├── flags: ∅
└── arguments: (length: 1)
└── @ ParenthesesNode (location: (7,6)-(7,11))
+ ├── flags: ∅
├── body:
│ @ StatementsNode (location: (7,7)-(7,10))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (7,7)-(7,10))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
diff --git a/test/prism/snapshots/whitequark/return_block.txt b/test/prism/snapshots/whitequark/return_block.txt
index 36746a361b..90161b6750 100644
--- a/test/prism/snapshots/whitequark/return_block.txt
+++ b/test/prism/snapshots/whitequark/return_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)
└── @ ReturnNode (location: (1,0)-(1,21))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (1,0)-(1,6) = "return"
└── arguments:
@ ArgumentsNode (location: (1,7)-(1,21))
@@ -34,6 +36,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,15)-(1,21))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_10279.txt b/test/prism/snapshots/whitequark/ruby_bug_10279.txt
index 66684350a4..6e5adfd4a6 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_10279.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_10279.txt
@@ -1,30 +1,37 @@
@ ProgramNode (location: (1,0)-(1,24))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,24))
+ ├── flags: ∅
└── body: (length: 1)
└── @ HashNode (location: (1,0)-(1,24))
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "{"
├── elements: (length: 1)
│ └── @ AssocNode (location: (1,1)-(1,23))
+ │ ├── flags: ∅
│ ├── key:
│ │ @ SymbolNode (location: (1,1)-(1,3))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,1)-(1,2) = "a"
│ │ ├── closing_loc: (1,2)-(1,3) = ":"
│ │ └── unescaped: "a"
│ ├── value:
│ │ @ IfNode (location: (1,4)-(1,23))
+ │ │ ├── flags: newline
│ │ ├── if_keyword_loc: (1,4)-(1,6) = "if"
│ │ ├── predicate:
│ │ │ @ TrueNode (location: (1,7)-(1,11))
+ │ │ │ └── flags: static_literal
│ │ ├── then_keyword_loc: (1,12)-(1,16) = "then"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,17)-(1,19))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,17)-(1,19))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 42
│ │ ├── consequent: ∅
│ │ └── end_keyword_loc: (1,20)-(1,23) = "end"
diff --git a/test/prism/snapshots/whitequark/ruby_bug_10653.txt b/test/prism/snapshots/whitequark/ruby_bug_10653.txt
index 400a8c2861..37e19ccca6 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_10653.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_10653.txt
@@ -1,18 +1,23 @@
@ ProgramNode (location: (1,0)-(5,31))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,31))
+ ├── flags: ∅
└── body: (length: 3)
├── @ IfNode (location: (1,0)-(1,33))
+ │ ├── flags: newline
│ ├── if_keyword_loc: ∅
│ ├── predicate:
│ │ @ FalseNode (location: (1,0)-(1,5))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: (1,6)-(1,7) = "?"
│ ├── statements:
│ │ @ StatementsNode (location: (1,8)-(1,20))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,8)-(1,20))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :raise
@@ -22,6 +27,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (1,14)-(1,20))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -29,12 +35,14 @@
│ │ └── closing_loc: (1,17)-(1,20) = "end"
│ ├── consequent:
│ │ @ ElseNode (location: (1,21)-(1,33))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (1,21)-(1,22) = ":"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,23)-(1,33))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,23)-(1,33))
- │ │ │ ├── flags: ignore_visibility
+ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :tap
@@ -44,6 +52,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (1,27)-(1,33))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅
@@ -52,15 +61,18 @@
│ │ └── end_keyword_loc: ∅
│ └── end_keyword_loc: ∅
├── @ IfNode (location: (3,0)-(3,25))
+ │ ├── flags: newline
│ ├── if_keyword_loc: ∅
│ ├── predicate:
│ │ @ FalseNode (location: (3,0)-(3,5))
+ │ │ └── flags: static_literal
│ ├── then_keyword_loc: (3,6)-(3,7) = "?"
│ ├── statements:
│ │ @ StatementsNode (location: (3,8)-(3,16))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (3,8)-(3,16))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :raise
@@ -70,6 +82,7 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (3,14)-(3,16))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -77,12 +90,14 @@
│ │ └── closing_loc: (3,15)-(3,16) = "}"
│ ├── consequent:
│ │ @ ElseNode (location: (3,17)-(3,25))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (3,17)-(3,18) = ":"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (3,19)-(3,25))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (3,19)-(3,25))
- │ │ │ ├── flags: ignore_visibility
+ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :tap
@@ -92,6 +107,7 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (3,23)-(3,25))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅
@@ -100,18 +116,21 @@
│ │ └── end_keyword_loc: ∅
│ └── end_keyword_loc: ∅
└── @ IfNode (location: (5,0)-(5,31))
+ ├── flags: newline
├── if_keyword_loc: ∅
├── predicate:
│ @ TrueNode (location: (5,0)-(5,4))
+ │ └── flags: static_literal
├── then_keyword_loc: (5,5)-(5,6) = "?"
├── statements:
│ @ StatementsNode (location: (5,7)-(5,27))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (5,7)-(5,27))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (5,7)-(5,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: (5,8)-(5,9) = "."
│ ├── name: :tap
@@ -121,11 +140,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,13)-(5,27))
+ │ ├── flags: ∅
│ ├── locals: [:n]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (5,16)-(5,19))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (5,17)-(5,18))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (5,17)-(5,18))
│ │ │ │ ├── flags: ∅
@@ -141,9 +163,10 @@
│ │ └── closing_loc: (5,18)-(5,19) = "|"
│ ├── body:
│ │ @ StatementsNode (location: (5,20)-(5,23))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (5,20)-(5,23))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :p
@@ -154,6 +177,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ LocalVariableReadNode (location: (5,22)-(5,23))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :n
│ │ │ └── depth: 0
│ │ ├── closing_loc: ∅
@@ -162,12 +186,14 @@
│ └── closing_loc: (5,24)-(5,27) = "end"
├── consequent:
│ @ ElseNode (location: (5,28)-(5,31))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (5,28)-(5,29) = ":"
│ ├── statements:
│ │ @ StatementsNode (location: (5,30)-(5,31))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (5,30)-(5,31))
- │ │ ├── flags: decimal
+ │ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 0
│ └── end_keyword_loc: ∅
└── end_keyword_loc: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_11107.txt b/test/prism/snapshots/whitequark/ruby_bug_11107.txt
index 36ece50d88..4ed332f903 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_11107.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_11107.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: :p
@@ -15,21 +17,24 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LambdaNode (location: (1,2)-(1,24))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── operator_loc: (1,2)-(1,4) = "->"
│ ├── opening_loc: (1,7)-(1,9) = "do"
│ ├── closing_loc: (1,21)-(1,24) = "end"
│ ├── 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,10)-(1,20))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,10)-(1,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -39,6 +44,7 @@
│ ├── closing_loc: (1,12)-(1,13) = ")"
│ └── block:
│ @ BlockNode (location: (1,14)-(1,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_11380.txt b/test/prism/snapshots/whitequark/ruby_bug_11380.txt
index d5ec10b06c..5893034b65 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_11380.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_11380.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,28))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,28))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,28))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :p
@@ -15,6 +17,7 @@
│ ├── flags: contains_keywords
│ └── arguments: (length: 2)
│ ├── @ LambdaNode (location: (1,2)-(1,15))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── operator_loc: (1,2)-(1,4) = "->"
│ │ ├── opening_loc: (1,5)-(1,6) = "{"
@@ -22,9 +25,10 @@
│ │ ├── parameters: ∅
│ │ └── body:
│ │ @ StatementsNode (location: (1,7)-(1,13))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (1,7)-(1,13))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (1,7)-(1,8) = ":"
│ │ ├── value_loc: (1,8)-(1,13) = "hello"
│ │ ├── closing_loc: ∅
@@ -33,21 +37,23 @@
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,17)-(1,21))
+ │ ├── flags: static_literal
│ ├── key:
│ │ @ SymbolNode (location: (1,17)-(1,19))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,17)-(1,18) = "a"
│ │ ├── closing_loc: (1,18)-(1,19) = ":"
│ │ └── unescaped: "a"
│ ├── value:
│ │ @ IntegerNode (location: (1,20)-(1,21))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,22)-(1,28))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_11873.txt b/test/prism/snapshots/whitequark/ruby_bug_11873.txt
index 2999662cc4..a92b217482 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_11873.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_11873.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(23,22))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(23,22))
+ ├── flags: ∅
└── body: (length: 12)
├── @ CallNode (location: (1,0)-(1,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -59,13 +61,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,14)-(1,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (1,14)-(1,16) = "do"
│ └── closing_loc: (1,17)-(1,20) = "end"
├── @ CallNode (location: (3,0)-(3,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -112,7 +115,7 @@
│ │ │ ├── closing_loc: (3,7)-(3,8) = ")"
│ │ │ └── block: ∅
│ │ └── @ RegularExpressionNode (location: (3,10)-(3,13))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (3,10)-(3,11) = "/"
│ │ ├── content_loc: (3,11)-(3,12) = "x"
│ │ ├── closing_loc: (3,12)-(3,13) = "/"
@@ -120,13 +123,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (3,14)-(3,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (3,14)-(3,16) = "do"
│ └── closing_loc: (3,17)-(3,20) = "end"
├── @ CallNode (location: (5,0)-(5,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -173,7 +177,7 @@
│ │ │ ├── closing_loc: (5,7)-(5,8) = ")"
│ │ │ └── block: ∅
│ │ └── @ RegularExpressionNode (location: (5,10)-(5,14))
- │ │ ├── flags: multi_line, forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, multi_line, forced_us_ascii_encoding
│ │ ├── opening_loc: (5,10)-(5,11) = "/"
│ │ ├── content_loc: (5,11)-(5,12) = "x"
│ │ ├── closing_loc: (5,12)-(5,14) = "/m"
@@ -181,13 +185,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,15)-(5,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (5,15)-(5,17) = "do"
│ └── closing_loc: (5,18)-(5,21) = "end"
├── @ CallNode (location: (7,0)-(7,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -242,13 +247,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (7,15)-(7,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (7,15)-(7,17) = "do"
│ └── closing_loc: (7,18)-(7,21) = "end"
├── @ CallNode (location: (9,0)-(9,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -295,7 +301,7 @@
│ │ │ ├── closing_loc: (9,8)-(9,9) = ")"
│ │ │ └── block: ∅
│ │ └── @ RegularExpressionNode (location: (9,11)-(9,14))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (9,11)-(9,12) = "/"
│ │ ├── content_loc: (9,12)-(9,13) = "x"
│ │ ├── closing_loc: (9,13)-(9,14) = "/"
@@ -303,13 +309,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (9,15)-(9,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (9,15)-(9,17) = "do"
│ └── closing_loc: (9,18)-(9,21) = "end"
├── @ CallNode (location: (11,0)-(11,22))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -356,7 +363,7 @@
│ │ │ ├── closing_loc: (11,8)-(11,9) = ")"
│ │ │ └── block: ∅
│ │ └── @ RegularExpressionNode (location: (11,11)-(11,15))
- │ │ ├── flags: multi_line, forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, multi_line, forced_us_ascii_encoding
│ │ ├── opening_loc: (11,11)-(11,12) = "/"
│ │ ├── content_loc: (11,12)-(11,13) = "x"
│ │ ├── closing_loc: (11,13)-(11,15) = "/m"
@@ -364,13 +371,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (11,16)-(11,22))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (11,16)-(11,18) = "do"
│ └── closing_loc: (11,19)-(11,22) = "end"
├── @ CallNode (location: (13,0)-(13,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -391,13 +399,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (13,3)-(13,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (13,4)-(13,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (13,4)-(13,7))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -430,13 +440,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (13,14)-(13,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (13,14)-(13,16) = "do"
│ └── closing_loc: (13,17)-(13,20) = "end"
├── @ CallNode (location: (15,0)-(15,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -457,13 +468,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (15,3)-(15,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (15,4)-(15,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (15,4)-(15,7))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -488,7 +501,7 @@
│ │ │ ├── opening_loc: (15,3)-(15,4) = "{"
│ │ │ └── closing_loc: (15,7)-(15,8) = "}"
│ │ └── @ RegularExpressionNode (location: (15,10)-(15,13))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (15,10)-(15,11) = "/"
│ │ ├── content_loc: (15,11)-(15,12) = "x"
│ │ ├── closing_loc: (15,12)-(15,13) = "/"
@@ -496,13 +509,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (15,14)-(15,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (15,14)-(15,16) = "do"
│ └── closing_loc: (15,17)-(15,20) = "end"
├── @ CallNode (location: (17,0)-(17,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -523,13 +537,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (17,3)-(17,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (17,4)-(17,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (17,4)-(17,7))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -554,7 +570,7 @@
│ │ │ ├── opening_loc: (17,3)-(17,4) = "{"
│ │ │ └── closing_loc: (17,7)-(17,8) = "}"
│ │ └── @ RegularExpressionNode (location: (17,10)-(17,14))
- │ │ ├── flags: multi_line, forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, multi_line, forced_us_ascii_encoding
│ │ ├── opening_loc: (17,10)-(17,11) = "/"
│ │ ├── content_loc: (17,11)-(17,12) = "x"
│ │ ├── closing_loc: (17,12)-(17,14) = "/m"
@@ -562,13 +578,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (17,15)-(17,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (17,15)-(17,17) = "do"
│ └── closing_loc: (17,18)-(17,21) = "end"
├── @ CallNode (location: (19,0)-(19,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -589,13 +606,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (19,3)-(19,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (19,4)-(19,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (19,4)-(19,8))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -628,13 +647,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (19,15)-(19,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (19,15)-(19,17) = "do"
│ └── closing_loc: (19,18)-(19,21) = "end"
├── @ CallNode (location: (21,0)-(21,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -655,13 +675,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (21,3)-(21,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (21,4)-(21,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (21,4)-(21,8))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -686,7 +708,7 @@
│ │ │ ├── opening_loc: (21,3)-(21,4) = "{"
│ │ │ └── closing_loc: (21,8)-(21,9) = "}"
│ │ └── @ RegularExpressionNode (location: (21,11)-(21,14))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (21,11)-(21,12) = "/"
│ │ ├── content_loc: (21,12)-(21,13) = "x"
│ │ ├── closing_loc: (21,13)-(21,14) = "/"
@@ -694,13 +716,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (21,15)-(21,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (21,15)-(21,17) = "do"
│ └── closing_loc: (21,18)-(21,21) = "end"
└── @ CallNode (location: (23,0)-(23,22))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
@@ -721,13 +744,15 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (23,3)-(23,9))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (23,4)-(23,8))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (23,4)-(23,8))
- │ │ │ ├── flags: ignore_visibility
+ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :c
@@ -752,7 +777,7 @@
│ │ ├── opening_loc: (23,3)-(23,4) = "{"
│ │ └── closing_loc: (23,8)-(23,9) = "}"
│ └── @ RegularExpressionNode (location: (23,11)-(23,15))
- │ ├── flags: multi_line, forced_us_ascii_encoding
+ │ ├── flags: static_literal, multi_line, forced_us_ascii_encoding
│ ├── opening_loc: (23,11)-(23,12) = "/"
│ ├── content_loc: (23,12)-(23,13) = "x"
│ ├── closing_loc: (23,13)-(23,15) = "/m"
@@ -760,6 +785,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (23,16)-(23,22))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_11873_a.txt b/test/prism/snapshots/whitequark/ruby_bug_11873_a.txt
index 831d57e30d..6897357de8 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_11873_a.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_11873_a.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(39,20))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(39,20))
+ ├── flags: ∅
└── body: (length: 20)
├── @ CallNode (location: (1,0)-(1,18))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -51,18 +53,19 @@
│ │ │ ├── closing_loc: (1,7)-(1,8) = ")"
│ │ │ └── block: ∅
│ │ └── @ IntegerNode (location: (1,10)-(1,11))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,12)-(1,18))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (1,12)-(1,14) = "do"
│ └── closing_loc: (1,15)-(1,18) = "end"
├── @ CallNode (location: (3,0)-(3,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -109,17 +112,19 @@
│ │ │ ├── closing_loc: (3,7)-(3,8) = ")"
│ │ │ └── block: ∅
│ │ └── @ FloatNode (location: (3,10)-(3,13))
+ │ │ ├── flags: static_literal
│ │ └── value: 1.0
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (3,14)-(3,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (3,14)-(3,16) = "do"
│ └── closing_loc: (3,17)-(3,20) = "end"
├── @ CallNode (location: (5,0)-(5,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -166,19 +171,22 @@
│ │ │ ├── closing_loc: (5,7)-(5,8) = ")"
│ │ │ └── block: ∅
│ │ └── @ ImaginaryNode (location: (5,10)-(5,14))
+ │ │ ├── flags: static_literal
│ │ └── numeric:
│ │ @ FloatNode (location: (5,10)-(5,13))
+ │ │ ├── flags: static_literal
│ │ └── value: 1.0
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,15)-(5,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (5,15)-(5,17) = "do"
│ └── closing_loc: (5,18)-(5,21) = "end"
├── @ CallNode (location: (7,0)-(7,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -225,19 +233,20 @@
│ │ │ ├── closing_loc: (7,7)-(7,8) = ")"
│ │ │ └── block: ∅
│ │ └── @ RationalNode (location: (7,10)-(7,14))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ ├── numerator: 1
│ │ └── denominator: 1
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (7,15)-(7,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (7,15)-(7,17) = "do"
│ └── closing_loc: (7,18)-(7,21) = "end"
├── @ CallNode (location: (9,0)-(9,19))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -284,7 +293,7 @@
│ │ │ ├── closing_loc: (9,7)-(9,8) = ")"
│ │ │ └── block: ∅
│ │ └── @ SymbolNode (location: (9,10)-(9,12))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (9,10)-(9,11) = ":"
│ │ ├── value_loc: (9,11)-(9,12) = "e"
│ │ ├── closing_loc: ∅
@@ -292,13 +301,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (9,13)-(9,19))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (9,13)-(9,15) = "do"
│ └── closing_loc: (9,16)-(9,19) = "end"
├── @ CallNode (location: (11,0)-(11,19))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -345,18 +355,19 @@
│ │ │ ├── closing_loc: (11,8)-(11,9) = ")"
│ │ │ └── block: ∅
│ │ └── @ IntegerNode (location: (11,11)-(11,12))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (11,13)-(11,19))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (11,13)-(11,15) = "do"
│ └── closing_loc: (11,16)-(11,19) = "end"
├── @ CallNode (location: (13,0)-(13,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -403,17 +414,19 @@
│ │ │ ├── closing_loc: (13,8)-(13,9) = ")"
│ │ │ └── block: ∅
│ │ └── @ FloatNode (location: (13,11)-(13,14))
+ │ │ ├── flags: static_literal
│ │ └── value: 1.0
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (13,15)-(13,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (13,15)-(13,17) = "do"
│ └── closing_loc: (13,18)-(13,21) = "end"
├── @ CallNode (location: (15,0)-(15,22))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -460,19 +473,22 @@
│ │ │ ├── closing_loc: (15,8)-(15,9) = ")"
│ │ │ └── block: ∅
│ │ └── @ ImaginaryNode (location: (15,11)-(15,15))
+ │ │ ├── flags: static_literal
│ │ └── numeric:
│ │ @ FloatNode (location: (15,11)-(15,14))
+ │ │ ├── flags: static_literal
│ │ └── value: 1.0
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (15,16)-(15,22))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (15,16)-(15,18) = "do"
│ └── closing_loc: (15,19)-(15,22) = "end"
├── @ CallNode (location: (17,0)-(17,22))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -519,19 +535,20 @@
│ │ │ ├── closing_loc: (17,8)-(17,9) = ")"
│ │ │ └── block: ∅
│ │ └── @ RationalNode (location: (17,11)-(17,15))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ ├── numerator: 1
│ │ └── denominator: 1
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (17,16)-(17,22))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (17,16)-(17,18) = "do"
│ └── closing_loc: (17,19)-(17,22) = "end"
├── @ CallNode (location: (19,0)-(19,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -578,7 +595,7 @@
│ │ │ ├── closing_loc: (19,8)-(19,9) = ")"
│ │ │ └── block: ∅
│ │ └── @ SymbolNode (location: (19,11)-(19,13))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (19,11)-(19,12) = ":"
│ │ ├── value_loc: (19,12)-(19,13) = "e"
│ │ ├── closing_loc: ∅
@@ -586,13 +603,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (19,14)-(19,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (19,14)-(19,16) = "do"
│ └── closing_loc: (19,17)-(19,20) = "end"
├── @ CallNode (location: (21,0)-(21,18))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -613,13 +631,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (21,3)-(21,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (21,4)-(21,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (21,4)-(21,7))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -644,18 +664,19 @@
│ │ │ ├── opening_loc: (21,3)-(21,4) = "{"
│ │ │ └── closing_loc: (21,7)-(21,8) = "}"
│ │ └── @ IntegerNode (location: (21,10)-(21,11))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (21,12)-(21,18))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (21,12)-(21,14) = "do"
│ └── closing_loc: (21,15)-(21,18) = "end"
├── @ CallNode (location: (23,0)-(23,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -676,13 +697,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (23,3)-(23,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (23,4)-(23,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (23,4)-(23,7))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -707,17 +730,19 @@
│ │ │ ├── opening_loc: (23,3)-(23,4) = "{"
│ │ │ └── closing_loc: (23,7)-(23,8) = "}"
│ │ └── @ FloatNode (location: (23,10)-(23,13))
+ │ │ ├── flags: static_literal
│ │ └── value: 1.0
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (23,14)-(23,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (23,14)-(23,16) = "do"
│ └── closing_loc: (23,17)-(23,20) = "end"
├── @ CallNode (location: (25,0)-(25,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -738,13 +763,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (25,3)-(25,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (25,4)-(25,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (25,4)-(25,7))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -769,19 +796,22 @@
│ │ │ ├── opening_loc: (25,3)-(25,4) = "{"
│ │ │ └── closing_loc: (25,7)-(25,8) = "}"
│ │ └── @ ImaginaryNode (location: (25,10)-(25,14))
+ │ │ ├── flags: static_literal
│ │ └── numeric:
│ │ @ FloatNode (location: (25,10)-(25,13))
+ │ │ ├── flags: static_literal
│ │ └── value: 1.0
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (25,15)-(25,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (25,15)-(25,17) = "do"
│ └── closing_loc: (25,18)-(25,21) = "end"
├── @ CallNode (location: (27,0)-(27,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -802,13 +832,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (27,3)-(27,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (27,4)-(27,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (27,4)-(27,7))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -833,19 +865,20 @@
│ │ │ ├── opening_loc: (27,3)-(27,4) = "{"
│ │ │ └── closing_loc: (27,7)-(27,8) = "}"
│ │ └── @ RationalNode (location: (27,10)-(27,14))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ ├── numerator: 1
│ │ └── denominator: 1
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (27,15)-(27,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (27,15)-(27,17) = "do"
│ └── closing_loc: (27,18)-(27,21) = "end"
├── @ CallNode (location: (29,0)-(29,19))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -866,13 +899,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (29,3)-(29,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (29,4)-(29,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (29,4)-(29,7))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -897,7 +932,7 @@
│ │ │ ├── opening_loc: (29,3)-(29,4) = "{"
│ │ │ └── closing_loc: (29,7)-(29,8) = "}"
│ │ └── @ SymbolNode (location: (29,10)-(29,12))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (29,10)-(29,11) = ":"
│ │ ├── value_loc: (29,11)-(29,12) = "e"
│ │ ├── closing_loc: ∅
@@ -905,13 +940,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (29,13)-(29,19))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (29,13)-(29,15) = "do"
│ └── closing_loc: (29,16)-(29,19) = "end"
├── @ CallNode (location: (31,0)-(31,19))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -932,13 +968,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (31,3)-(31,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (31,4)-(31,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (31,4)-(31,8))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -963,18 +1001,19 @@
│ │ │ ├── opening_loc: (31,3)-(31,4) = "{"
│ │ │ └── closing_loc: (31,8)-(31,9) = "}"
│ │ └── @ IntegerNode (location: (31,11)-(31,12))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (31,13)-(31,19))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (31,13)-(31,15) = "do"
│ └── closing_loc: (31,16)-(31,19) = "end"
├── @ CallNode (location: (33,0)-(33,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -995,13 +1034,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (33,3)-(33,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (33,4)-(33,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (33,4)-(33,8))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -1026,17 +1067,19 @@
│ │ │ ├── opening_loc: (33,3)-(33,4) = "{"
│ │ │ └── closing_loc: (33,8)-(33,9) = "}"
│ │ └── @ FloatNode (location: (33,11)-(33,14))
+ │ │ ├── flags: static_literal
│ │ └── value: 1.0
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (33,15)-(33,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (33,15)-(33,17) = "do"
│ └── closing_loc: (33,18)-(33,21) = "end"
├── @ CallNode (location: (35,0)-(35,22))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -1057,13 +1100,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (35,3)-(35,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (35,4)-(35,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (35,4)-(35,8))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -1088,19 +1133,22 @@
│ │ │ ├── opening_loc: (35,3)-(35,4) = "{"
│ │ │ └── closing_loc: (35,8)-(35,9) = "}"
│ │ └── @ ImaginaryNode (location: (35,11)-(35,15))
+ │ │ ├── flags: static_literal
│ │ └── numeric:
│ │ @ FloatNode (location: (35,11)-(35,14))
+ │ │ ├── flags: static_literal
│ │ └── value: 1.0
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (35,16)-(35,22))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (35,16)-(35,18) = "do"
│ └── closing_loc: (35,19)-(35,22) = "end"
├── @ CallNode (location: (37,0)-(37,22))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -1121,13 +1169,15 @@
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (37,3)-(37,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (37,4)-(37,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (37,4)-(37,8))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :c
@@ -1152,19 +1202,20 @@
│ │ │ ├── opening_loc: (37,3)-(37,4) = "{"
│ │ │ └── closing_loc: (37,8)-(37,9) = "}"
│ │ └── @ RationalNode (location: (37,11)-(37,15))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ ├── numerator: 1
│ │ └── denominator: 1
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (37,16)-(37,22))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (37,16)-(37,18) = "do"
│ └── closing_loc: (37,19)-(37,22) = "end"
└── @ CallNode (location: (39,0)-(39,20))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
@@ -1185,13 +1236,15 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (39,3)-(39,9))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (39,4)-(39,8))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (39,4)-(39,8))
- │ │ │ ├── flags: ignore_visibility
+ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :c
@@ -1216,7 +1269,7 @@
│ │ ├── opening_loc: (39,3)-(39,4) = "{"
│ │ └── closing_loc: (39,8)-(39,9) = "}"
│ └── @ SymbolNode (location: (39,11)-(39,13))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (39,11)-(39,12) = ":"
│ ├── value_loc: (39,12)-(39,13) = "e"
│ ├── closing_loc: ∅
@@ -1224,6 +1277,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (39,14)-(39,20))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_11873_b.txt b/test/prism/snapshots/whitequark/ruby_bug_11873_b.txt
index 6aa8e55e54..263f4f8dd3 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_11873_b.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_11873_b.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: :p
@@ -25,13 +27,15 @@
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (1,3)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (1,4)-(1,12))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 2)
│ │ │ ├── @ CallNode (location: (1,4)-(1,8))
- │ │ │ │ ├── flags: ignore_visibility
+ │ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :p
@@ -54,7 +58,7 @@
│ │ │ │ ├── closing_loc: (1,7)-(1,8) = ")"
│ │ │ │ └── block: ∅
│ │ │ └── @ CallNode (location: (1,9)-(1,12))
- │ │ │ ├── flags: ignore_visibility
+ │ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :p
@@ -91,6 +95,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,19)-(1,25))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_11989.txt b/test/prism/snapshots/whitequark/ruby_bug_11989.txt
index fe17087e53..96bafab7e9 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_11989.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_11989.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: :p
diff --git a/test/prism/snapshots/whitequark/ruby_bug_11990.txt b/test/prism/snapshots/whitequark/ruby_bug_11990.txt
index 0a5fba1482..095381d130 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_11990.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_11990.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: :p
@@ -15,17 +17,17 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ InterpolatedStringNode (location: (1,2)-(1,12))
- │ ├── flags: ∅
+ │ ├── flags: static_literal
│ ├── opening_loc: ∅
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (1,2)-(1,6))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: (1,2)-(1,6) = "<<~E"
│ │ │ ├── content_loc: (2,0)-(3,0) = " x\n"
│ │ │ ├── closing_loc: (3,0)-(4,0) = "E\n"
│ │ │ └── unescaped: "x\n"
│ │ └── @ StringNode (location: (1,7)-(1,12))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (1,7)-(1,8) = "\""
│ │ ├── content_loc: (1,8)-(1,11) = " y"
│ │ ├── closing_loc: (1,11)-(1,12) = "\""
diff --git a/test/prism/snapshots/whitequark/ruby_bug_12073.txt b/test/prism/snapshots/whitequark/ruby_bug_12073.txt
index 2b4d3eab2a..0b20229de9 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_12073.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_12073.txt
@@ -1,19 +1,22 @@
@ ProgramNode (location: (1,0)-(3,34))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(3,34))
+ ├── flags: ∅
└── body: (length: 3)
├── @ LocalVariableWriteNode (location: (1,0)-(1,5))
+ │ ├── flags: newline
│ ├── name: :a
│ ├── depth: 0
│ ├── name_loc: (1,0)-(1,1) = "a"
│ ├── value:
│ │ @ IntegerNode (location: (1,4)-(1,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (1,2)-(1,3) = "="
├── @ CallNode (location: (1,7)-(1,13))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
@@ -27,26 +30,29 @@
│ │ ├── flags: symbol_keys
│ │ └── elements: (length: 1)
│ │ └── @ AssocNode (location: (1,9)-(1,13))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,9)-(1,11))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,9)-(1,10) = "b"
│ │ │ ├── closing_loc: (1,10)-(1,11) = ":"
│ │ │ └── unescaped: "b"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (1,12)-(1,13))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ DefNode (location: (3,0)-(3,34))
+ ├── flags: newline
├── name: :foo
├── name_loc: (3,4)-(3,7) = "foo"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (3,8)-(3,13))
+ │ ├── flags: ∅
│ ├── requireds: (length: 1)
│ │ └── @ RequiredParameterNode (location: (3,8)-(3,13))
│ │ ├── flags: ∅
@@ -59,9 +65,10 @@
│ └── block: ∅
├── body:
│ @ StatementsNode (location: (3,15)-(3,29))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (3,15)-(3,29))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :raise
@@ -72,8 +79,10 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ ConstantPathNode (location: (3,21)-(3,25))
+ │ │ │ ├── flags: ∅
│ │ │ ├── parent:
│ │ │ │ @ ConstantReadNode (location: (3,21)-(3,22))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :A
│ │ │ ├── name: :B
│ │ │ ├── delimiter_loc: (3,22)-(3,24) = "::"
diff --git a/test/prism/snapshots/whitequark/ruby_bug_12402.txt b/test/prism/snapshots/whitequark/ruby_bug_12402.txt
index 4935007f8a..6f915342c0 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_12402.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_12402.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(27,31))
+├── flags: ∅
├── locals: [:foo]
└── statements:
@ StatementsNode (location: (1,0)-(27,31))
+ ├── flags: ∅
└── body: (length: 14)
├── @ LocalVariableOperatorWriteNode (location: (1,0)-(1,27))
+ │ ├── flags: newline
│ ├── name_loc: (1,0)-(1,3) = "foo"
│ ├── binary_operator_loc: (1,4)-(1,6) = "+="
│ ├── value:
│ │ @ RescueModifierNode (location: (1,7)-(1,27))
+ │ │ ├── flags: ∅
│ │ ├── expression:
│ │ │ @ CallNode (location: (1,7)-(1,16))
│ │ │ ├── flags: ignore_visibility
@@ -35,14 +39,17 @@
│ │ ├── keyword_loc: (1,17)-(1,23) = "rescue"
│ │ └── rescue_expression:
│ │ @ NilNode (location: (1,24)-(1,27))
+ │ │ └── flags: static_literal
│ ├── name: :foo
│ ├── binary_operator: :+
│ └── depth: 0
├── @ LocalVariableOperatorWriteNode (location: (3,0)-(3,28))
+ │ ├── flags: newline
│ ├── name_loc: (3,0)-(3,3) = "foo"
│ ├── binary_operator_loc: (3,4)-(3,6) = "+="
│ ├── value:
│ │ @ RescueModifierNode (location: (3,7)-(3,28))
+ │ │ ├── flags: ∅
│ │ ├── expression:
│ │ │ @ CallNode (location: (3,7)-(3,17))
│ │ │ ├── flags: ignore_visibility
@@ -70,15 +77,18 @@
│ │ ├── keyword_loc: (3,18)-(3,24) = "rescue"
│ │ └── rescue_expression:
│ │ @ NilNode (location: (3,25)-(3,28))
+ │ │ └── flags: static_literal
│ ├── name: :foo
│ ├── binary_operator: :+
│ └── depth: 0
├── @ LocalVariableWriteNode (location: (5,0)-(5,26))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (5,0)-(5,3) = "foo"
│ ├── value:
│ │ @ RescueModifierNode (location: (5,6)-(5,26))
+ │ │ ├── flags: ∅
│ │ ├── expression:
│ │ │ @ CallNode (location: (5,6)-(5,15))
│ │ │ ├── flags: ignore_visibility
@@ -106,13 +116,16 @@
│ │ ├── keyword_loc: (5,16)-(5,22) = "rescue"
│ │ └── rescue_expression:
│ │ @ NilNode (location: (5,23)-(5,26))
+ │ │ └── flags: static_literal
│ └── operator_loc: (5,4)-(5,5) = "="
├── @ LocalVariableWriteNode (location: (7,0)-(7,27))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (7,0)-(7,3) = "foo"
│ ├── value:
│ │ @ RescueModifierNode (location: (7,6)-(7,27))
+ │ │ ├── flags: ∅
│ │ ├── expression:
│ │ │ @ CallNode (location: (7,6)-(7,16))
│ │ │ ├── flags: ignore_visibility
@@ -140,11 +153,13 @@
│ │ ├── keyword_loc: (7,17)-(7,23) = "rescue"
│ │ └── rescue_expression:
│ │ @ NilNode (location: (7,24)-(7,27))
+ │ │ └── flags: static_literal
│ └── operator_loc: (7,4)-(7,5) = "="
├── @ CallOperatorWriteNode (location: (9,0)-(9,29))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (9,0)-(9,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── call_operator_loc: (9,3)-(9,4) = "."
@@ -155,6 +170,7 @@
│ ├── binary_operator_loc: (9,6)-(9,8) = "+="
│ └── value:
│ @ RescueModifierNode (location: (9,9)-(9,29))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (9,9)-(9,18))
│ │ ├── flags: ignore_visibility
@@ -182,10 +198,12 @@
│ ├── keyword_loc: (9,19)-(9,25) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (9,26)-(9,29))
+ │ └── flags: static_literal
├── @ CallOperatorWriteNode (location: (11,0)-(11,30))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (11,0)-(11,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── call_operator_loc: (11,3)-(11,4) = "."
@@ -196,6 +214,7 @@
│ ├── binary_operator_loc: (11,6)-(11,8) = "+="
│ └── value:
│ @ RescueModifierNode (location: (11,9)-(11,30))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (11,9)-(11,19))
│ │ ├── flags: ignore_visibility
@@ -223,10 +242,12 @@
│ ├── keyword_loc: (11,20)-(11,26) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (11,27)-(11,30))
+ │ └── flags: static_literal
├── @ CallOperatorWriteNode (location: (13,0)-(13,29))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (13,0)-(13,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── call_operator_loc: (13,3)-(13,4) = "."
@@ -237,6 +258,7 @@
│ ├── binary_operator_loc: (13,6)-(13,8) = "+="
│ └── value:
│ @ RescueModifierNode (location: (13,9)-(13,29))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (13,9)-(13,18))
│ │ ├── flags: ignore_visibility
@@ -264,10 +286,12 @@
│ ├── keyword_loc: (13,19)-(13,25) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (13,26)-(13,29))
+ │ └── flags: static_literal
├── @ CallOperatorWriteNode (location: (15,0)-(15,30))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (15,0)-(15,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── call_operator_loc: (15,3)-(15,4) = "."
@@ -278,6 +302,7 @@
│ ├── binary_operator_loc: (15,6)-(15,8) = "+="
│ └── value:
│ @ RescueModifierNode (location: (15,9)-(15,30))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (15,9)-(15,19))
│ │ ├── flags: ignore_visibility
@@ -305,11 +330,15 @@
│ ├── keyword_loc: (15,20)-(15,26) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (15,27)-(15,30))
+ │ └── flags: static_literal
├── @ ConstantPathOrWriteNode (location: (17,0)-(17,31))
+ │ ├── flags: newline
│ ├── target:
│ │ @ ConstantPathNode (location: (17,0)-(17,6))
+ │ │ ├── flags: ∅
│ │ ├── parent:
│ │ │ @ LocalVariableReadNode (location: (17,0)-(17,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :foo
│ │ │ └── depth: 0
│ │ ├── name: :C
@@ -318,6 +347,7 @@
│ ├── operator_loc: (17,7)-(17,10) = "||="
│ └── value:
│ @ RescueModifierNode (location: (17,11)-(17,31))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (17,11)-(17,20))
│ │ ├── flags: ignore_visibility
@@ -345,11 +375,15 @@
│ ├── keyword_loc: (17,21)-(17,27) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (17,28)-(17,31))
+ │ └── flags: static_literal
├── @ ConstantPathOrWriteNode (location: (19,0)-(19,32))
+ │ ├── flags: newline
│ ├── target:
│ │ @ ConstantPathNode (location: (19,0)-(19,6))
+ │ │ ├── flags: ∅
│ │ ├── parent:
│ │ │ @ LocalVariableReadNode (location: (19,0)-(19,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :foo
│ │ │ └── depth: 0
│ │ ├── name: :C
@@ -358,6 +392,7 @@
│ ├── operator_loc: (19,7)-(19,10) = "||="
│ └── value:
│ @ RescueModifierNode (location: (19,11)-(19,32))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (19,11)-(19,21))
│ │ ├── flags: ignore_visibility
@@ -385,10 +420,12 @@
│ ├── keyword_loc: (19,22)-(19,28) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (19,29)-(19,32))
+ │ └── flags: static_literal
├── @ CallOperatorWriteNode (location: (21,0)-(21,30))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (21,0)-(21,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── call_operator_loc: (21,3)-(21,5) = "::"
@@ -399,6 +436,7 @@
│ ├── binary_operator_loc: (21,7)-(21,9) = "+="
│ └── value:
│ @ RescueModifierNode (location: (21,10)-(21,30))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (21,10)-(21,19))
│ │ ├── flags: ignore_visibility
@@ -426,10 +464,12 @@
│ ├── keyword_loc: (21,20)-(21,26) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (21,27)-(21,30))
+ │ └── flags: static_literal
├── @ CallOperatorWriteNode (location: (23,0)-(23,31))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (23,0)-(23,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── call_operator_loc: (23,3)-(23,5) = "::"
@@ -440,6 +480,7 @@
│ ├── binary_operator_loc: (23,7)-(23,9) = "+="
│ └── value:
│ @ RescueModifierNode (location: (23,10)-(23,31))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (23,10)-(23,20))
│ │ ├── flags: ignore_visibility
@@ -467,10 +508,12 @@
│ ├── keyword_loc: (23,21)-(23,27) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (23,28)-(23,31))
+ │ └── flags: static_literal
├── @ IndexOperatorWriteNode (location: (25,0)-(25,30))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (25,0)-(25,3))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── call_operator_loc: ∅
@@ -480,7 +523,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (25,4)-(25,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ ├── closing_loc: (25,5)-(25,6) = "]"
│ ├── block: ∅
@@ -488,6 +531,7 @@
│ ├── binary_operator_loc: (25,7)-(25,9) = "+="
│ └── value:
│ @ RescueModifierNode (location: (25,10)-(25,30))
+ │ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (25,10)-(25,19))
│ │ ├── flags: ignore_visibility
@@ -515,10 +559,12 @@
│ ├── keyword_loc: (25,20)-(25,26) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (25,27)-(25,30))
+ │ └── flags: static_literal
└── @ IndexOperatorWriteNode (location: (27,0)-(27,31))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ LocalVariableReadNode (location: (27,0)-(27,3))
+ │ ├── flags: ∅
│ ├── name: :foo
│ └── depth: 0
├── call_operator_loc: ∅
@@ -528,7 +574,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (27,4)-(27,5))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 0
├── closing_loc: (27,5)-(27,6) = "]"
├── block: ∅
@@ -536,6 +582,7 @@
├── binary_operator_loc: (27,7)-(27,9) = "+="
└── value:
@ RescueModifierNode (location: (27,10)-(27,31))
+ ├── flags: ∅
├── expression:
│ @ CallNode (location: (27,10)-(27,20))
│ ├── flags: ignore_visibility
@@ -563,3 +610,4 @@
├── keyword_loc: (27,21)-(27,27) = "rescue"
└── rescue_expression:
@ NilNode (location: (27,28)-(27,31))
+ └── flags: static_literal
diff --git a/test/prism/snapshots/whitequark/ruby_bug_12669.txt b/test/prism/snapshots/whitequark/ruby_bug_12669.txt
index 6151143ba8..9d1a924b79 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_12669.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_12669.txt
@@ -1,13 +1,17 @@
@ ProgramNode (location: (1,0)-(7,16))
+├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (1,0)-(7,16))
+ ├── flags: ∅
└── body: (length: 4)
├── @ LocalVariableOperatorWriteNode (location: (1,0)-(1,18))
+ │ ├── flags: newline
│ ├── name_loc: (1,0)-(1,1) = "a"
│ ├── binary_operator_loc: (1,2)-(1,4) = "+="
│ ├── value:
│ │ @ LocalVariableOperatorWriteNode (location: (1,5)-(1,18))
+ │ │ ├── flags: ∅
│ │ ├── name_loc: (1,5)-(1,6) = "b"
│ │ ├── binary_operator_loc: (1,7)-(1,9) = "+="
│ │ ├── value:
@@ -23,7 +27,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (1,16)-(1,18))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (1,16)-(1,17) = ":"
│ │ │ │ ├── value_loc: (1,17)-(1,18) = "x"
│ │ │ │ ├── closing_loc: ∅
@@ -37,10 +41,12 @@
│ ├── binary_operator: :+
│ └── depth: 0
├── @ LocalVariableOperatorWriteNode (location: (3,0)-(3,17))
+ │ ├── flags: newline
│ ├── name_loc: (3,0)-(3,1) = "a"
│ ├── binary_operator_loc: (3,2)-(3,4) = "+="
│ ├── value:
│ │ @ LocalVariableWriteNode (location: (3,5)-(3,17))
+ │ │ ├── flags: ∅
│ │ ├── name: :b
│ │ ├── depth: 0
│ │ ├── name_loc: (3,5)-(3,6) = "b"
@@ -57,7 +63,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (3,15)-(3,17))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (3,15)-(3,16) = ":"
│ │ │ │ ├── value_loc: (3,16)-(3,17) = "x"
│ │ │ │ ├── closing_loc: ∅
@@ -69,11 +75,13 @@
│ ├── binary_operator: :+
│ └── depth: 0
├── @ LocalVariableWriteNode (location: (5,0)-(5,17))
+ │ ├── flags: newline
│ ├── name: :a
│ ├── depth: 0
│ ├── name_loc: (5,0)-(5,1) = "a"
│ ├── value:
│ │ @ LocalVariableOperatorWriteNode (location: (5,4)-(5,17))
+ │ │ ├── flags: ∅
│ │ ├── name_loc: (5,4)-(5,5) = "b"
│ │ ├── binary_operator_loc: (5,6)-(5,8) = "+="
│ │ ├── value:
@@ -89,7 +97,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (5,15)-(5,17))
- │ │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (5,15)-(5,16) = ":"
│ │ │ │ ├── value_loc: (5,16)-(5,17) = "x"
│ │ │ │ ├── closing_loc: ∅
@@ -101,11 +109,13 @@
│ │ └── depth: 0
│ └── operator_loc: (5,2)-(5,3) = "="
└── @ LocalVariableWriteNode (location: (7,0)-(7,16))
+ ├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (7,0)-(7,1) = "a"
├── value:
│ @ LocalVariableWriteNode (location: (7,4)-(7,16))
+ │ ├── flags: ∅
│ ├── name: :b
│ ├── depth: 0
│ ├── name_loc: (7,4)-(7,5) = "b"
@@ -122,7 +132,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ SymbolNode (location: (7,14)-(7,16))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (7,14)-(7,15) = ":"
│ │ │ ├── value_loc: (7,15)-(7,16) = "x"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_12686.txt b/test/prism/snapshots/whitequark/ruby_bug_12686.txt
index 427c96bbe0..515ee75674 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_12686.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_12686.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,10 +17,13 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (1,2)-(1,16))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,3)-(1,15))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RescueModifierNode (location: (1,3)-(1,15))
+ │ │ ├── flags: newline
│ │ ├── expression:
│ │ │ @ CallNode (location: (1,3)-(1,4))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -33,6 +38,7 @@
│ │ ├── keyword_loc: (1,5)-(1,11) = "rescue"
│ │ └── rescue_expression:
│ │ @ NilNode (location: (1,12)-(1,15))
+ │ │ └── flags: static_literal
│ ├── opening_loc: (1,2)-(1,3) = "("
│ └── closing_loc: (1,15)-(1,16) = ")"
├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_13547.txt b/test/prism/snapshots/whitequark/ruby_bug_13547.txt
index eae9587ea0..d0ac79d7ff 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_13547.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_13547.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,4))
│ ├── flags: variable_call, ignore_visibility
@@ -24,6 +26,7 @@
├── closing_loc: (1,5)-(1,6) = "]"
└── block:
@ BlockNode (location: (1,7)-(1,9))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_14690.txt b/test/prism/snapshots/whitequark/ruby_bug_14690.txt
index 36629797db..377c0e0a0e 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_14690.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_14690.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: :let
@@ -15,19 +17,22 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (1,4)-(1,6))
+ │ ├── flags: ∅
│ ├── body: ∅
│ ├── opening_loc: (1,4)-(1,5) = "("
│ └── closing_loc: (1,5)-(1,6) = ")"
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,7)-(1,23))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body:
│ @ StatementsNode (location: (1,9)-(1,21))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,9)-(1,21))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :m
@@ -50,6 +55,7 @@
│ ├── closing_loc: (1,12)-(1,13) = ")"
│ └── block:
│ @ BlockNode (location: (1,14)-(1,21))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_15789.txt b/test/prism/snapshots/whitequark/ruby_bug_15789.txt
index db8bc1401f..c6ac7447a8 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_15789.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_15789.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,19))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,19))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,20))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :m
@@ -15,14 +17,17 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LambdaNode (location: (1,2)-(1,20))
+ │ │ ├── flags: ∅
│ │ ├── locals: [:a]
│ │ ├── operator_loc: (1,2)-(1,4) = "->"
│ │ ├── opening_loc: (1,17)-(1,18) = "{"
│ │ ├── closing_loc: (1,19)-(1,20) = "}"
│ │ ├── parameters:
│ │ │ @ BlockParametersNode (location: (1,4)-(1,16))
+ │ │ │ ├── flags: ∅
│ │ │ ├── parameters:
│ │ │ │ @ ParametersNode (location: (1,5)-(1,15))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 1)
│ │ │ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,15))
@@ -32,17 +37,21 @@
│ │ │ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ │ │ └── value:
│ │ │ │ │ @ LambdaNode (location: (1,9)-(1,15))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── locals: [:_1]
│ │ │ │ │ ├── operator_loc: (1,9)-(1,11) = "->"
│ │ │ │ │ ├── opening_loc: (1,11)-(1,12) = "{"
│ │ │ │ │ ├── closing_loc: (1,14)-(1,15) = "}"
│ │ │ │ │ ├── parameters:
│ │ │ │ │ │ @ NumberedParametersNode (location: (1,9)-(1,15))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── maximum: 1
│ │ │ │ │ └── body:
│ │ │ │ │ @ StatementsNode (location: (1,12)-(1,14))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ LocalVariableReadNode (location: (1,12)-(1,14))
+ │ │ │ │ │ ├── flags: newline
│ │ │ │ │ ├── name: :_1
│ │ │ │ │ └── depth: 0
│ │ │ │ ├── rest: ∅
@@ -55,14 +64,16 @@
│ │ │ └── closing_loc: (1,15)-(1,16) = ")"
│ │ └── body:
│ │ @ StatementsNode (location: (1,18)-(1,19))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (1,18)-(1,19))
+ │ │ ├── flags: newline
│ │ ├── name: :a
│ │ └── depth: 0
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (3,0)-(3,19))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :m
@@ -73,14 +84,17 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ LambdaNode (location: (3,2)-(3,19))
+ │ ├── flags: ∅
│ ├── locals: [:a]
│ ├── operator_loc: (3,2)-(3,4) = "->"
│ ├── opening_loc: (3,16)-(3,17) = "{"
│ ├── closing_loc: (3,18)-(3,19) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (3,4)-(3,15))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (3,5)-(3,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
@@ -92,17 +106,21 @@
│ │ │ │ ├── name_loc: (3,5)-(3,7) = "a:"
│ │ │ │ └── value:
│ │ │ │ @ LambdaNode (location: (3,8)-(3,14))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── locals: [:_1]
│ │ │ │ ├── operator_loc: (3,8)-(3,10) = "->"
│ │ │ │ ├── opening_loc: (3,10)-(3,11) = "{"
│ │ │ │ ├── closing_loc: (3,13)-(3,14) = "}"
│ │ │ │ ├── parameters:
│ │ │ │ │ @ NumberedParametersNode (location: (3,8)-(3,14))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── maximum: 1
│ │ │ │ └── body:
│ │ │ │ @ StatementsNode (location: (3,11)-(3,13))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ LocalVariableReadNode (location: (3,11)-(3,13))
+ │ │ │ │ ├── flags: newline
│ │ │ │ ├── name: :_1
│ │ │ │ └── depth: 0
│ │ │ ├── keyword_rest: ∅
@@ -112,8 +130,10 @@
│ │ └── closing_loc: (3,14)-(3,15) = ")"
│ └── body:
│ @ StatementsNode (location: (3,17)-(3,18))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (3,17)-(3,18))
+ │ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_9669.txt b/test/prism/snapshots/whitequark/ruby_bug_9669.txt
index 910b08c3ef..3d2e305657 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_9669.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_9669.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(8,1))
+├── flags: ∅
├── locals: [:o]
└── statements:
@ StatementsNode (location: (1,0)-(8,1))
+ ├── flags: ∅
└── body: (length: 2)
├── @ DefNode (location: (1,0)-(3,3))
+ │ ├── flags: newline
│ ├── name: :a
│ ├── name_loc: (1,4)-(1,5) = "a"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,6)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
@@ -22,9 +26,10 @@
│ │ └── block: ∅
│ ├── body:
│ │ @ StatementsNode (location: (2,0)-(2,6))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ReturnNode (location: (2,0)-(2,6))
- │ │ ├── flags: redundant
+ │ │ ├── flags: newline, redundant
│ │ ├── keyword_loc: (2,0)-(2,6) = "return"
│ │ └── arguments: ∅
│ ├── locals: [:b]
@@ -35,24 +40,27 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (3,0)-(3,3) = "end"
└── @ LocalVariableWriteNode (location: (5,0)-(8,1))
+ ├── flags: newline
├── name: :o
├── depth: 0
├── name_loc: (5,0)-(5,1) = "o"
├── value:
│ @ HashNode (location: (5,4)-(8,1))
+ │ ├── flags: static_literal
│ ├── opening_loc: (5,4)-(5,5) = "{"
│ ├── elements: (length: 1)
│ │ └── @ AssocNode (location: (6,0)-(7,1))
+ │ │ ├── flags: static_literal
│ │ ├── key:
│ │ │ @ SymbolNode (location: (6,0)-(6,2))
- │ │ │ ├── flags: forced_us_ascii_encoding
+ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (6,0)-(6,1) = "a"
│ │ │ ├── closing_loc: (6,1)-(6,2) = ":"
│ │ │ └── unescaped: "a"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (7,0)-(7,1))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: ∅
│ └── closing_loc: (8,0)-(8,1) = "}"
diff --git a/test/prism/snapshots/whitequark/sclass.txt b/test/prism/snapshots/whitequark/sclass.txt
index 53188a7b8a..346d1a4149 100644
--- a/test/prism/snapshots/whitequark/sclass.txt
+++ b/test/prism/snapshots/whitequark/sclass.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,22))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,22))
+ ├── flags: ∅
└── body: (length: 1)
└── @ SingletonClassNode (location: (1,0)-(1,22))
+ ├── flags: newline
├── locals: []
├── class_keyword_loc: (1,0)-(1,5) = "class"
├── operator_loc: (1,6)-(1,8) = "<<"
@@ -20,6 +23,8 @@
│ └── block: ∅
├── body:
│ @ StatementsNode (location: (1,14)-(1,17))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ NilNode (location: (1,14)-(1,17))
+ │ └── flags: newline, static_literal
└── end_keyword_loc: (1,19)-(1,22) = "end"
diff --git a/test/prism/snapshots/whitequark/self.txt b/test/prism/snapshots/whitequark/self.txt
index c69f8fa8c5..e3a1a9f7df 100644
--- a/test/prism/snapshots/whitequark/self.txt
+++ b/test/prism/snapshots/whitequark/self.txt
@@ -1,6 +1,9 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ SelfNode (location: (1,0)-(1,4))
+ └── flags: newline
diff --git a/test/prism/snapshots/whitequark/send_attr_asgn.txt b/test/prism/snapshots/whitequark/send_attr_asgn.txt
index 1d09daa4a6..faeb5a7c7c 100644
--- a/test/prism/snapshots/whitequark/send_attr_asgn.txt
+++ b/test/prism/snapshots/whitequark/send_attr_asgn.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(7,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(7,10))
+ ├── flags: ∅
└── body: (length: 4)
├── @ CallNode (location: (1,0)-(1,9))
- │ ├── flags: attribute_write
+ │ ├── flags: newline, attribute_write
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -25,12 +27,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (1,8)-(1,9))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,9))
- │ ├── flags: attribute_write
+ │ ├── flags: newline, attribute_write
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -51,13 +53,15 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (3,8)-(3,9))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ ConstantPathWriteNode (location: (5,0)-(5,10))
+ │ ├── flags: newline
│ ├── target:
│ │ @ ConstantPathNode (location: (5,0)-(5,6))
+ │ │ ├── flags: ∅
│ │ ├── parent:
│ │ │ @ CallNode (location: (5,0)-(5,3))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -75,10 +79,10 @@
│ ├── operator_loc: (5,7)-(5,8) = "="
│ └── value:
│ @ IntegerNode (location: (5,9)-(5,10))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
└── @ CallNode (location: (7,0)-(7,10))
- ├── flags: attribute_write
+ ├── flags: newline, attribute_write
├── receiver:
│ @ CallNode (location: (7,0)-(7,3))
│ ├── flags: variable_call, ignore_visibility
@@ -99,7 +103,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (7,9)-(7,10))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/whitequark/send_attr_asgn_conditional.txt b/test/prism/snapshots/whitequark/send_attr_asgn_conditional.txt
index 3cec95ae7c..cb849e3f05 100644
--- a/test/prism/snapshots/whitequark/send_attr_asgn_conditional.txt
+++ b/test/prism/snapshots/whitequark/send_attr_asgn_conditional.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: safe_navigation, attribute_write
+ ├── flags: newline, safe_navigation, 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,7)-(1,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/whitequark/send_binary_op.txt b/test/prism/snapshots/whitequark/send_binary_op.txt
index 09991c5679..a020262b1d 100644
--- a/test/prism/snapshots/whitequark/send_binary_op.txt
+++ b/test/prism/snapshots/whitequark/send_binary_op.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(41,7))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(41,7))
+ ├── flags: ∅
└── body: (length: 21)
├── @ CallNode (location: (1,0)-(1,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -25,12 +27,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (1,7)-(1,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -51,12 +53,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (3,7)-(3,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (5,0)-(5,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (5,0)-(5,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -77,12 +79,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (5,6)-(5,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (7,0)-(7,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (7,0)-(7,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -103,12 +105,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (7,6)-(7,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (9,0)-(9,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (9,0)-(9,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -129,12 +131,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (9,6)-(9,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (11,0)-(11,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (11,0)-(11,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -155,12 +157,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (11,7)-(11,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (13,0)-(13,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (13,0)-(13,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -181,12 +183,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (13,6)-(13,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (15,0)-(15,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (15,0)-(15,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -207,12 +209,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (15,6)-(15,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (17,0)-(17,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (17,0)-(17,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -233,12 +235,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (17,6)-(17,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (19,0)-(19,7))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver:
│ │ @ CallNode (location: (19,0)-(19,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -259,12 +261,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (19,6)-(19,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (21,0)-(21,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (21,0)-(21,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -285,12 +287,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (21,7)-(21,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (23,0)-(23,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver:
│ │ @ CallNode (location: (23,0)-(23,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -311,12 +313,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (23,7)-(23,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (25,0)-(25,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (25,0)-(25,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -337,12 +339,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (25,8)-(25,9))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (27,0)-(27,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (27,0)-(27,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -363,12 +365,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (27,7)-(27,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (29,0)-(29,9))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (29,0)-(29,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -389,12 +391,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (29,8)-(29,9))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (31,0)-(31,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (31,0)-(31,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -415,12 +417,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (31,7)-(31,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (33,0)-(33,7))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver:
│ │ @ CallNode (location: (33,0)-(33,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -441,12 +443,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (33,6)-(33,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (35,0)-(35,8))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver:
│ │ @ CallNode (location: (35,0)-(35,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -467,12 +469,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (35,7)-(35,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (37,0)-(37,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (37,0)-(37,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -493,12 +495,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (37,7)-(37,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (39,0)-(39,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (39,0)-(39,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -519,12 +521,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (39,6)-(39,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (41,0)-(41,7))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (41,0)-(41,3))
│ ├── flags: variable_call, ignore_visibility
@@ -545,7 +547,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (41,6)-(41,7))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅
diff --git a/test/prism/snapshots/whitequark/send_block_chain_cmd.txt b/test/prism/snapshots/whitequark/send_block_chain_cmd.txt
index 4013888882..bce45c38ee 100644
--- a/test/prism/snapshots/whitequark/send_block_chain_cmd.txt
+++ b/test/prism/snapshots/whitequark/send_block_chain_cmd.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(13,23))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(13,23))
+ ├── flags: ∅
└── body: (length: 7)
├── @ CallNode (location: (1,0)-(1,21))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,13))
│ │ ├── flags: ignore_visibility
@@ -18,11 +20,12 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,5)-(1,6))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (1,7)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -49,7 +52,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,28))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,13))
│ │ ├── flags: ignore_visibility
@@ -63,11 +66,12 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (3,5)-(3,6))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (3,7)-(3,13))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -94,13 +98,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (3,22)-(3,28))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (3,22)-(3,24) = "do"
│ └── closing_loc: (3,25)-(3,28) = "end"
├── @ CallNode (location: (5,0)-(5,20))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (5,0)-(5,13))
│ │ ├── flags: ignore_visibility
@@ -114,11 +119,12 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (5,5)-(5,6))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (5,7)-(5,13))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -132,13 +138,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,18)-(5,20))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (5,18)-(5,19) = "{"
│ └── closing_loc: (5,19)-(5,20) = "}"
├── @ CallNode (location: (7,0)-(7,22))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (7,0)-(7,13))
│ │ ├── flags: ignore_visibility
@@ -152,11 +159,12 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (7,5)-(7,6))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (7,7)-(7,13))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -183,7 +191,7 @@
│ ├── closing_loc: (7,21)-(7,22) = ")"
│ └── block: ∅
├── @ CallNode (location: (9,0)-(9,25))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (9,0)-(9,13))
│ │ ├── flags: ignore_visibility
@@ -197,11 +205,12 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (9,5)-(9,6))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (9,7)-(9,13))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -228,13 +237,14 @@
│ ├── closing_loc: (9,21)-(9,22) = ")"
│ └── block:
│ @ BlockNode (location: (9,23)-(9,25))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (9,23)-(9,24) = "{"
│ └── closing_loc: (9,24)-(9,25) = "}"
├── @ CallNode (location: (11,0)-(11,22))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (11,0)-(11,13))
│ │ ├── flags: ignore_visibility
@@ -248,11 +258,12 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (11,5)-(11,6))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (11,7)-(11,13))
+ │ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body: ∅
@@ -279,7 +290,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (13,0)-(13,23))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (13,0)-(13,13))
│ ├── flags: ignore_visibility
@@ -293,11 +304,12 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (13,5)-(13,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (13,7)-(13,13))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
diff --git a/test/prism/snapshots/whitequark/send_block_conditional.txt b/test/prism/snapshots/whitequark/send_block_conditional.txt
index 826d3c8464..86ef0dbf36 100644
--- a/test/prism/snapshots/whitequark/send_block_conditional.txt
+++ b/test/prism/snapshots/whitequark/send_block_conditional.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: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,3))
│ ├── flags: variable_call, ignore_visibility
@@ -24,6 +26,7 @@
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,9)-(1,11))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/send_call.txt b/test/prism/snapshots/whitequark/send_call.txt
index 48063e0121..4ed17fbaee 100644
--- a/test/prism/snapshots/whitequark/send_call.txt
+++ b/test/prism/snapshots/whitequark/send_call.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,8))
+ ├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -25,12 +27,12 @@
│ │ ├── 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: ∅
└── @ CallNode (location: (3,0)-(3,8))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (3,0)-(3,3))
│ ├── flags: variable_call, ignore_visibility
@@ -51,7 +53,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (3,6)-(3,7))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: (3,7)-(3,8) = ")"
└── block: ∅
diff --git a/test/prism/snapshots/whitequark/send_conditional.txt b/test/prism/snapshots/whitequark/send_conditional.txt
index 7b402d9ef2..7faa6ac04e 100644
--- a/test/prism/snapshots/whitequark/send_conditional.txt
+++ b/test/prism/snapshots/whitequark/send_conditional.txt
@@ -1,10 +1,12 @@
@ 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: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/send_index.txt b/test/prism/snapshots/whitequark/send_index.txt
index 6c9e08f2ea..5aec47c484 100644
--- a/test/prism/snapshots/whitequark/send_index.txt
+++ b/test/prism/snapshots/whitequark/send_index.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,3))
│ ├── flags: variable_call, ignore_visibility
@@ -25,10 +27,10 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ IntegerNode (location: (1,4)-(1,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ IntegerNode (location: (1,7)-(1,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
├── closing_loc: (1,8)-(1,9) = "]"
└── block: ∅
diff --git a/test/prism/snapshots/whitequark/send_index_asgn.txt b/test/prism/snapshots/whitequark/send_index_asgn.txt
index 9d2e6efcb6..fe0f71956a 100644
--- a/test/prism/snapshots/whitequark/send_index_asgn.txt
+++ b/test/prism/snapshots/whitequark/send_index_asgn.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,3))
│ ├── flags: variable_call, ignore_visibility
@@ -25,13 +27,13 @@
│ ├── flags: ∅
│ └── arguments: (length: 3)
│ ├── @ IntegerNode (location: (1,4)-(1,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── @ IntegerNode (location: (1,7)-(1,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── @ 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/whitequark/send_index_asgn_legacy.txt b/test/prism/snapshots/whitequark/send_index_asgn_legacy.txt
index 9d2e6efcb6..fe0f71956a 100644
--- a/test/prism/snapshots/whitequark/send_index_asgn_legacy.txt
+++ b/test/prism/snapshots/whitequark/send_index_asgn_legacy.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,3))
│ ├── flags: variable_call, ignore_visibility
@@ -25,13 +27,13 @@
│ ├── flags: ∅
│ └── arguments: (length: 3)
│ ├── @ IntegerNode (location: (1,4)-(1,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── @ IntegerNode (location: (1,7)-(1,8))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── @ 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/whitequark/send_index_cmd.txt b/test/prism/snapshots/whitequark/send_index_cmd.txt
index 0a41fd051d..89a5c41fc3 100644
--- a/test/prism/snapshots/whitequark/send_index_cmd.txt
+++ b/test/prism/snapshots/whitequark/send_index_cmd.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: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (1,0)-(1,3))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/send_index_legacy.txt b/test/prism/snapshots/whitequark/send_index_legacy.txt
index 6c9e08f2ea..5aec47c484 100644
--- a/test/prism/snapshots/whitequark/send_index_legacy.txt
+++ b/test/prism/snapshots/whitequark/send_index_legacy.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,3))
│ ├── flags: variable_call, ignore_visibility
@@ -25,10 +27,10 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ IntegerNode (location: (1,4)-(1,5))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ IntegerNode (location: (1,7)-(1,8))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 2
├── closing_loc: (1,8)-(1,9) = "]"
└── block: ∅
diff --git a/test/prism/snapshots/whitequark/send_lambda.txt b/test/prism/snapshots/whitequark/send_lambda.txt
index bf21700539..a1693734e8 100644
--- a/test/prism/snapshots/whitequark/send_lambda.txt
+++ b/test/prism/snapshots/whitequark/send_lambda.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(5,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,5))
+ ├── flags: ∅
└── body: (length: 3)
├── @ LambdaNode (location: (1,0)-(1,8))
+ │ ├── flags: newline
│ ├── locals: []
│ ├── operator_loc: (1,0)-(1,2) = "->"
│ ├── opening_loc: (1,5)-(1,6) = "{"
│ ├── closing_loc: (1,7)-(1,8) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (1,3)-(1,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest:
@@ -29,6 +34,7 @@
│ │ └── closing_loc: ∅
│ └── body: ∅
├── @ LambdaNode (location: (3,0)-(3,9))
+ │ ├── flags: newline
│ ├── locals: []
│ ├── operator_loc: (3,0)-(3,2) = "->"
│ ├── opening_loc: (3,3)-(3,5) = "do"
@@ -36,6 +42,7 @@
│ ├── parameters: ∅
│ └── body: ∅
└── @ LambdaNode (location: (5,0)-(5,5))
+ ├── flags: newline
├── locals: []
├── operator_loc: (5,0)-(5,2) = "->"
├── opening_loc: (5,2)-(5,3) = "{"
diff --git a/test/prism/snapshots/whitequark/send_lambda_args.txt b/test/prism/snapshots/whitequark/send_lambda_args.txt
index f61f622bdd..ffa9a6ba9e 100644
--- a/test/prism/snapshots/whitequark/send_lambda_args.txt
+++ b/test/prism/snapshots/whitequark/send_lambda_args.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(3,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,9))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LambdaNode (location: (1,0)-(1,10))
+ │ ├── flags: newline
│ ├── locals: [:a]
│ ├── operator_loc: (1,0)-(1,2) = "->"
│ ├── opening_loc: (1,7)-(1,8) = "{"
│ ├── closing_loc: (1,9)-(1,10) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,3)-(1,6))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (1,4)-(1,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (1,4)-(1,5))
│ │ │ │ ├── flags: ∅
@@ -27,14 +32,17 @@
│ │ └── closing_loc: (1,5)-(1,6) = ")"
│ └── body: ∅
└── @ LambdaNode (location: (3,0)-(3,9))
+ ├── flags: newline
├── locals: [:a]
├── operator_loc: (3,0)-(3,2) = "->"
├── opening_loc: (3,6)-(3,7) = "{"
├── closing_loc: (3,8)-(3,9) = "}"
├── 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/whitequark/send_lambda_args_noparen.txt b/test/prism/snapshots/whitequark/send_lambda_args_noparen.txt
index 747656af6b..2cbe43e6e0 100644
--- a/test/prism/snapshots/whitequark/send_lambda_args_noparen.txt
+++ b/test/prism/snapshots/whitequark/send_lambda_args_noparen.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(3,9))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,9))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LambdaNode (location: (1,0)-(1,11))
+ │ ├── flags: newline
│ ├── locals: [:a]
│ ├── operator_loc: (1,0)-(1,2) = "->"
│ ├── opening_loc: (1,8)-(1,9) = "{"
│ ├── closing_loc: (1,10)-(1,11) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,3)-(1,7))
+ │ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (1,3)-(1,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
@@ -23,7 +28,7 @@
│ │ │ │ ├── name_loc: (1,3)-(1,5) = "a:"
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (1,6)-(1,7))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -32,14 +37,17 @@
│ │ └── closing_loc: ∅
│ └── body: ∅
└── @ LambdaNode (location: (3,0)-(3,9))
+ ├── flags: newline
├── locals: [:a]
├── operator_loc: (3,0)-(3,2) = "->"
├── opening_loc: (3,6)-(3,7) = "{"
├── closing_loc: (3,8)-(3,9) = "}"
├── parameters:
│ @ BlockParametersNode (location: (3,3)-(3,5))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (3,3)-(3,5))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
diff --git a/test/prism/snapshots/whitequark/send_lambda_args_shadow.txt b/test/prism/snapshots/whitequark/send_lambda_args_shadow.txt
index 34a63ec503..5cd6660d4a 100644
--- a/test/prism/snapshots/whitequark/send_lambda_args_shadow.txt
+++ b/test/prism/snapshots/whitequark/send_lambda_args_shadow.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(1,19))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,19))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LambdaNode (location: (1,0)-(1,19))
+ ├── flags: newline
├── locals: [:a, :foo, :bar]
├── operator_loc: (1,0)-(1,2) = "->"
├── opening_loc: (1,16)-(1,17) = "{"
├── closing_loc: (1,18)-(1,19) = "}"
├── parameters:
│ @ BlockParametersNode (location: (1,2)-(1,15))
+ │ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,3)-(1,4))
│ │ │ ├── flags: ∅
diff --git a/test/prism/snapshots/whitequark/send_lambda_legacy.txt b/test/prism/snapshots/whitequark/send_lambda_legacy.txt
index 3a64e941b6..902e140459 100644
--- a/test/prism/snapshots/whitequark/send_lambda_legacy.txt
+++ b/test/prism/snapshots/whitequark/send_lambda_legacy.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LambdaNode (location: (1,0)-(1,5))
+ ├── flags: newline
├── locals: []
├── operator_loc: (1,0)-(1,2) = "->"
├── opening_loc: (1,2)-(1,3) = "{"
diff --git a/test/prism/snapshots/whitequark/send_op_asgn_conditional.txt b/test/prism/snapshots/whitequark/send_op_asgn_conditional.txt
index 05966fc5a3..68e09171f8 100644
--- a/test/prism/snapshots/whitequark/send_op_asgn_conditional.txt
+++ b/test/prism/snapshots/whitequark/send_op_asgn_conditional.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,10))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallAndWriteNode (location: (1,0)-(1,10))
- ├── flags: safe_navigation
+ ├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
@@ -23,5 +25,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/whitequark/send_plain.txt b/test/prism/snapshots/whitequark/send_plain.txt
index be57bee5a0..96643ddcab 100644
--- a/test/prism/snapshots/whitequark/send_plain.txt
+++ b/test/prism/snapshots/whitequark/send_plain.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,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -24,7 +26,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -44,7 +46,7 @@
│ ├── closing_loc: (3,9)-(3,10) = ")"
│ └── block: ∅
└── @ CallNode (location: (5,0)-(5,8))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (5,0)-(5,3))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/send_plain_cmd.txt b/test/prism/snapshots/whitequark/send_plain_cmd.txt
index 59236e114d..2785712baa 100644
--- a/test/prism/snapshots/whitequark/send_plain_cmd.txt
+++ b/test/prism/snapshots/whitequark/send_plain_cmd.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,12))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,12))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CallNode (location: (1,0)-(1,11))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -37,7 +39,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,12))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -70,7 +72,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (5,0)-(5,12))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (5,0)-(5,3))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/send_self.txt b/test/prism/snapshots/whitequark/send_self.txt
index 41fd822110..f3c56f5413 100644
--- a/test/prism/snapshots/whitequark/send_self.txt
+++ b/test/prism/snapshots/whitequark/send_self.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,6))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,6))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CallNode (location: (1,0)-(1,3))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fun
@@ -14,7 +16,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,4))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fun!
@@ -24,7 +26,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (5,0)-(5,6))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :fun
@@ -35,7 +37,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (5,4)-(5,5))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: (5,5)-(5,6) = ")"
└── block: ∅
diff --git a/test/prism/snapshots/whitequark/send_self_block.txt b/test/prism/snapshots/whitequark/send_self_block.txt
index c92935603b..2d526d5d48 100644
--- a/test/prism/snapshots/whitequark/send_self_block.txt
+++ b/test/prism/snapshots/whitequark/send_self_block.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(7,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(7,10))
+ ├── flags: ∅
└── body: (length: 4)
├── @ CallNode (location: (1,0)-(1,10))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fun
@@ -14,13 +16,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,4)-(1,10))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (1,4)-(1,6) = "do"
│ └── closing_loc: (1,7)-(1,10) = "end"
├── @ CallNode (location: (3,0)-(3,7))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fun
@@ -30,13 +33,14 @@
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (3,4)-(3,7))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (3,4)-(3,5) = "{"
│ └── closing_loc: (3,6)-(3,7) = "}"
├── @ CallNode (location: (5,0)-(5,9))
- │ ├── flags: ignore_visibility
+ │ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fun
@@ -46,13 +50,14 @@
│ ├── closing_loc: (5,4)-(5,5) = ")"
│ └── block:
│ @ BlockNode (location: (5,6)-(5,9))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (5,6)-(5,7) = "{"
│ └── closing_loc: (5,8)-(5,9) = "}"
└── @ CallNode (location: (7,0)-(7,10))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :fun
@@ -63,11 +68,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:
@ BlockNode (location: (7,7)-(7,10))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/send_unary_op.txt b/test/prism/snapshots/whitequark/send_unary_op.txt
index 8ca1de7968..970b78417f 100644
--- a/test/prism/snapshots/whitequark/send_unary_op.txt
+++ b/test/prism/snapshots/whitequark/send_unary_op.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,4))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CallNode (location: (1,0)-(1,4))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,1)-(1,4))
│ │ ├── flags: variable_call, ignore_visibility
@@ -24,7 +26,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,4))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,1)-(3,4))
│ │ ├── flags: variable_call, ignore_visibility
@@ -44,7 +46,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (5,0)-(5,4))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (5,1)-(5,4))
│ ├── flags: variable_call, ignore_visibility
diff --git a/test/prism/snapshots/whitequark/slash_newline_in_heredocs.txt b/test/prism/snapshots/whitequark/slash_newline_in_heredocs.txt
index ba1fce0c68..bd9fa7916d 100644
--- a/test/prism/snapshots/whitequark/slash_newline_in_heredocs.txt
+++ b/test/prism/snapshots/whitequark/slash_newline_in_heredocs.txt
@@ -1,32 +1,34 @@
@ ProgramNode (location: (1,0)-(8,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(8,4))
+ ├── flags: ∅
└── body: (length: 2)
├── @ StringNode (location: (1,0)-(1,4))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,4) = "<<-E"
│ ├── content_loc: (2,0)-(5,0) = " 1 \\\n 2\n 3\n"
│ ├── closing_loc: (5,0)-(6,0) = "E\n"
│ └── unescaped: " 1 2\n 3\n"
└── @ InterpolatedStringNode (location: (8,0)-(8,4))
- ├── flags: ∅
+ ├── flags: newline, static_literal
├── opening_loc: (8,0)-(8,4) = "<<~E"
├── parts: (length: 3)
│ ├── @ StringNode (location: (9,0)-(10,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (9,0)-(10,0) = " 1 \\\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "1 "
│ ├── @ StringNode (location: (10,0)-(11,0))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (10,0)-(11,0) = " 2\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "2\n"
│ └── @ StringNode (location: (11,0)-(12,0))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (11,0)-(12,0) = " 3\n"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/space_args_arg.txt b/test/prism/snapshots/whitequark/space_args_arg.txt
index 55750d2b61..a0149c5f32 100644
--- a/test/prism/snapshots/whitequark/space_args_arg.txt
+++ b/test/prism/snapshots/whitequark/space_args_arg.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: :fun
@@ -15,11 +17,13 @@
│ ├── 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) = ")"
diff --git a/test/prism/snapshots/whitequark/space_args_arg_block.txt b/test/prism/snapshots/whitequark/space_args_arg_block.txt
index a6224bcca1..c3289c1448 100644
--- a/test/prism/snapshots/whitequark/space_args_arg_block.txt
+++ b/test/prism/snapshots/whitequark/space_args_arg_block.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(5,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,10))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CallNode (location: (1,0)-(1,14))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -25,24 +27,27 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ ParenthesesNode (location: (1,8)-(1,11))
+ │ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (1,9)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,9)-(1,10))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 1
│ │ ├── opening_loc: (1,8)-(1,9) = "("
│ │ └── closing_loc: (1,10)-(1,11) = ")"
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,12)-(1,14))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (1,12)-(1,13) = "{"
│ └── closing_loc: (1,13)-(1,14) = "}"
├── @ CallNode (location: (3,0)-(3,15))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,3))
│ │ ├── flags: variable_call, ignore_visibility
@@ -63,24 +68,27 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ ParenthesesNode (location: (3,9)-(3,12))
+ │ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (3,10)-(3,11))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (3,10)-(3,11))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 1
│ │ ├── opening_loc: (3,9)-(3,10) = "("
│ │ └── closing_loc: (3,11)-(3,12) = ")"
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (3,13)-(3,15))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (3,13)-(3,14) = "{"
│ └── closing_loc: (3,14)-(3,15) = "}"
└── @ CallNode (location: (5,0)-(5,10))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :fun
@@ -91,17 +99,20 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (5,4)-(5,7))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (5,5)-(5,6))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (5,5)-(5,6))
- │ │ ├── flags: decimal
+ │ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── opening_loc: (5,4)-(5,5) = "("
│ └── closing_loc: (5,6)-(5,7) = ")"
├── closing_loc: ∅
└── block:
@ BlockNode (location: (5,8)-(5,10))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/space_args_arg_call.txt b/test/prism/snapshots/whitequark/space_args_arg_call.txt
index 767b099a8b..538a865e2a 100644
--- a/test/prism/snapshots/whitequark/space_args_arg_call.txt
+++ b/test/prism/snapshots/whitequark/space_args_arg_call.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: :fun
@@ -18,11 +20,13 @@
│ ├── flags: ∅
│ ├── receiver:
│ │ @ 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) = ")"
diff --git a/test/prism/snapshots/whitequark/space_args_arg_newline.txt b/test/prism/snapshots/whitequark/space_args_arg_newline.txt
index 7727a5ddd9..d3fbe23299 100644
--- a/test/prism/snapshots/whitequark/space_args_arg_newline.txt
+++ b/test/prism/snapshots/whitequark/space_args_arg_newline.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(2,1))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,1))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(2,1))
- ├── flags: ignore_visibility
+ ├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :fun
@@ -15,11 +17,13 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (1,4)-(2,1))
+ │ ├── 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: (2,0)-(2,1) = ")"
diff --git a/test/prism/snapshots/whitequark/space_args_block.txt b/test/prism/snapshots/whitequark/space_args_block.txt
index 62b549a674..19b5064886 100644
--- a/test/prism/snapshots/whitequark/space_args_block.txt
+++ b/test/prism/snapshots/whitequark/space_args_block.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: :fun
@@ -15,12 +17,14 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (1,4)-(1,6))
+ │ ├── flags: ∅
│ ├── body: ∅
│ ├── opening_loc: (1,4)-(1,5) = "("
│ └── closing_loc: (1,5)-(1,6) = ")"
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,7)-(1,9))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/space_args_cmd.txt b/test/prism/snapshots/whitequark/space_args_cmd.txt
index 8a75bef6a8..f91b7edbbe 100644
--- a/test/prism/snapshots/whitequark/space_args_cmd.txt
+++ b/test/prism/snapshots/whitequark/space_args_cmd.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: :fun
@@ -15,11 +17,13 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (1,4)-(1,11))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,5)-(1,10))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,5)-(1,10))
- │ │ ├── flags: ignore_visibility
+ │ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :f
diff --git a/test/prism/snapshots/whitequark/string___FILE__.txt b/test/prism/snapshots/whitequark/string___FILE__.txt
index a12499a631..98cd05e689 100644
--- a/test/prism/snapshots/whitequark/string___FILE__.txt
+++ b/test/prism/snapshots/whitequark/string___FILE__.txt
@@ -1,8 +1,10 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ SourceFileNode (location: (1,0)-(1,8))
- ├── flags: ∅
+ ├── flags: newline
└── filepath: "whitequark/string___FILE__.txt"
diff --git a/test/prism/snapshots/whitequark/string_concat.txt b/test/prism/snapshots/whitequark/string_concat.txt
index f7f7bf9723..1320fae371 100644
--- a/test/prism/snapshots/whitequark/string_concat.txt
+++ b/test/prism/snapshots/whitequark/string_concat.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,14))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: ∅
├── parts: (length: 2)
│ ├── @ InterpolatedStringNode (location: (1,0)-(1,8))
@@ -12,19 +14,21 @@
│ │ ├── opening_loc: (1,0)-(1,1) = "\""
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (1,1)-(1,4))
- │ │ │ │ ├── flags: frozen
+ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (1,1)-(1,4) = "foo"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "foo"
│ │ │ └── @ EmbeddedVariableNode (location: (1,4)-(1,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (1,4)-(1,5) = "#"
│ │ │ └── variable:
│ │ │ @ InstanceVariableReadNode (location: (1,5)-(1,7))
+ │ │ │ ├── flags: ∅
│ │ │ └── name: :@a
│ │ └── closing_loc: (1,7)-(1,8) = "\""
│ └── @ StringNode (location: (1,9)-(1,14))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: (1,9)-(1,10) = "\""
│ ├── content_loc: (1,10)-(1,13) = "bar"
│ ├── closing_loc: (1,13)-(1,14) = "\""
diff --git a/test/prism/snapshots/whitequark/string_dvar.txt b/test/prism/snapshots/whitequark/string_dvar.txt
index 9d04232580..ab11f00013 100644
--- a/test/prism/snapshots/whitequark/string_dvar.txt
+++ b/test/prism/snapshots/whitequark/string_dvar.txt
@@ -1,37 +1,45 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,14))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "\""
├── parts: (length: 5)
│ ├── @ EmbeddedVariableNode (location: (1,1)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (1,1)-(1,2) = "#"
│ │ └── variable:
│ │ @ InstanceVariableReadNode (location: (1,2)-(1,4))
+ │ │ ├── flags: ∅
│ │ └── name: :@a
│ ├── @ StringNode (location: (1,4)-(1,5))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,4)-(1,5) = " "
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " "
│ ├── @ EmbeddedVariableNode (location: (1,5)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (1,5)-(1,6) = "#"
│ │ └── variable:
│ │ @ ClassVariableReadNode (location: (1,6)-(1,9))
+ │ │ ├── flags: ∅
│ │ └── name: :@@a
│ ├── @ StringNode (location: (1,9)-(1,10))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,9)-(1,10) = " "
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " "
│ └── @ EmbeddedVariableNode (location: (1,10)-(1,13))
+ │ ├── flags: ∅
│ ├── operator_loc: (1,10)-(1,11) = "#"
│ └── variable:
│ @ GlobalVariableReadNode (location: (1,11)-(1,13))
+ │ ├── flags: ∅
│ └── name: :$a
└── closing_loc: (1,13)-(1,14) = "\""
diff --git a/test/prism/snapshots/whitequark/string_interp.txt b/test/prism/snapshots/whitequark/string_interp.txt
index 597e8c5d5b..22ddaed0cd 100644
--- a/test/prism/snapshots/whitequark/string_interp.txt
+++ b/test/prism/snapshots/whitequark/string_interp.txt
@@ -1,22 +1,26 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedStringNode (location: (1,0)-(1,14))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "\""
├── parts: (length: 3)
│ ├── @ StringNode (location: (1,1)-(1,4))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,1)-(1,4) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── @ EmbeddedStatementsNode (location: (1,4)-(1,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,4)-(1,6) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,6)-(1,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,6)-(1,9))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -30,7 +34,7 @@
│ │ │ └── block: ∅
│ │ └── closing_loc: (1,9)-(1,10) = "}"
│ └── @ StringNode (location: (1,10)-(1,13))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (1,10)-(1,13) = "baz"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/string_plain.txt b/test/prism/snapshots/whitequark/string_plain.txt
index 7534ac1844..0a763cef60 100644
--- a/test/prism/snapshots/whitequark/string_plain.txt
+++ b/test/prism/snapshots/whitequark/string_plain.txt
@@ -1,16 +1,18 @@
@ ProgramNode (location: (1,0)-(3,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,8))
+ ├── flags: ∅
└── body: (length: 2)
├── @ StringNode (location: (1,0)-(1,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,3) = "%q("
│ ├── content_loc: (1,3)-(1,9) = "foobar"
│ ├── closing_loc: (1,9)-(1,10) = ")"
│ └── unescaped: "foobar"
└── @ StringNode (location: (3,0)-(3,8))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (3,0)-(3,1) = "'"
├── content_loc: (3,1)-(3,7) = "foobar"
├── closing_loc: (3,7)-(3,8) = "'"
diff --git a/test/prism/snapshots/whitequark/super.txt b/test/prism/snapshots/whitequark/super.txt
index 132b4912e4..da89dbda28 100644
--- a/test/prism/snapshots/whitequark/super.txt
+++ b/test/prism/snapshots/whitequark/super.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(5,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,10))
+ ├── flags: ∅
└── body: (length: 3)
├── @ SuperNode (location: (1,0)-(1,9))
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,5) = "super"
│ ├── lparen_loc: ∅
│ ├── arguments:
@@ -23,12 +26,14 @@
│ ├── rparen_loc: ∅
│ └── block: ∅
├── @ SuperNode (location: (3,0)-(3,7))
+ │ ├── flags: newline
│ ├── keyword_loc: (3,0)-(3,5) = "super"
│ ├── lparen_loc: (3,5)-(3,6) = "("
│ ├── arguments: ∅
│ ├── rparen_loc: (3,6)-(3,7) = ")"
│ └── block: ∅
└── @ SuperNode (location: (5,0)-(5,10))
+ ├── flags: newline
├── keyword_loc: (5,0)-(5,5) = "super"
├── lparen_loc: (5,5)-(5,6) = "("
├── arguments:
diff --git a/test/prism/snapshots/whitequark/super_block.txt b/test/prism/snapshots/whitequark/super_block.txt
index d9ce7b86be..095856ef40 100644
--- a/test/prism/snapshots/whitequark/super_block.txt
+++ b/test/prism/snapshots/whitequark/super_block.txt
@@ -1,17 +1,22 @@
@ ProgramNode (location: (1,0)-(3,21))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,21))
+ ├── flags: ∅
└── body: (length: 2)
├── @ ForwardingSuperNode (location: (1,0)-(1,12))
+ │ ├── flags: newline
│ └── block:
│ @ BlockNode (location: (1,6)-(1,12))
+ │ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (1,6)-(1,8) = "do"
│ └── closing_loc: (1,9)-(1,12) = "end"
└── @ SuperNode (location: (3,0)-(3,21))
+ ├── flags: newline
├── keyword_loc: (3,0)-(3,5) = "super"
├── lparen_loc: ∅
├── arguments:
@@ -41,6 +46,7 @@
├── rparen_loc: ∅
└── block:
@ BlockNode (location: (3,15)-(3,21))
+ ├── flags: ∅
├── locals: []
├── parameters: ∅
├── body: ∅
diff --git a/test/prism/snapshots/whitequark/symbol_interp.txt b/test/prism/snapshots/whitequark/symbol_interp.txt
index a9b8dfcb63..46a24b6c7e 100644
--- a/test/prism/snapshots/whitequark/symbol_interp.txt
+++ b/test/prism/snapshots/whitequark/symbol_interp.txt
@@ -1,21 +1,26 @@
@ ProgramNode (location: (1,0)-(1,15))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedSymbolNode (location: (1,0)-(1,15))
+ ├── flags: newline
├── opening_loc: (1,0)-(1,2) = ":\""
├── parts: (length: 3)
│ ├── @ StringNode (location: (1,2)-(1,5))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,2)-(1,5) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── @ EmbeddedStatementsNode (location: (1,5)-(1,11))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,5)-(1,7) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,7)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,7)-(1,10))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -29,7 +34,7 @@
│ │ │ └── block: ∅
│ │ └── closing_loc: (1,10)-(1,11) = "}"
│ └── @ StringNode (location: (1,11)-(1,14))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (1,11)-(1,14) = "baz"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/symbol_plain.txt b/test/prism/snapshots/whitequark/symbol_plain.txt
index a2466600f5..803f2847cd 100644
--- a/test/prism/snapshots/whitequark/symbol_plain.txt
+++ b/test/prism/snapshots/whitequark/symbol_plain.txt
@@ -1,16 +1,18 @@
@ ProgramNode (location: (1,0)-(3,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,4))
+ ├── flags: ∅
└── body: (length: 2)
├── @ SymbolNode (location: (1,0)-(1,6))
- │ ├── flags: forced_us_ascii_encoding
+ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (1,0)-(1,2) = ":'"
│ ├── value_loc: (1,2)-(1,5) = "foo"
│ ├── closing_loc: (1,5)-(1,6) = "'"
│ └── unescaped: "foo"
└── @ SymbolNode (location: (3,0)-(3,4))
- ├── flags: forced_us_ascii_encoding
+ ├── flags: newline, static_literal, forced_us_ascii_encoding
├── opening_loc: (3,0)-(3,1) = ":"
├── value_loc: (3,1)-(3,4) = "foo"
├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/ternary.txt b/test/prism/snapshots/whitequark/ternary.txt
index fa637ffb4e..411ba972f5 100644
--- a/test/prism/snapshots/whitequark/ternary.txt
+++ b/test/prism/snapshots/whitequark/ternary.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,11))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
+ ├── flags: ∅
└── body: (length: 1)
└── @ IfNode (location: (1,0)-(1,11))
+ ├── flags: newline
├── if_keyword_loc: ∅
├── predicate:
│ @ CallNode (location: (1,0)-(1,3))
@@ -19,18 +22,21 @@
├── then_keyword_loc: (1,4)-(1,5) = "?"
├── statements:
│ @ 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
├── consequent:
│ @ ElseNode (location: (1,8)-(1,11))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,8)-(1,9) = ":"
│ ├── 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: 2
│ └── end_keyword_loc: ∅
└── end_keyword_loc: ∅
diff --git a/test/prism/snapshots/whitequark/ternary_ambiguous_symbol.txt b/test/prism/snapshots/whitequark/ternary_ambiguous_symbol.txt
index 833afcff42..04dfce8d85 100644
--- a/test/prism/snapshots/whitequark/ternary_ambiguous_symbol.txt
+++ b/test/prism/snapshots/whitequark/ternary_ambiguous_symbol.txt
@@ -1,26 +1,32 @@
@ ProgramNode (location: (1,0)-(1,13))
+├── flags: ∅
├── locals: [:t]
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
+ ├── flags: ∅
└── body: (length: 2)
├── @ LocalVariableWriteNode (location: (1,0)-(1,3))
+ │ ├── flags: newline
│ ├── name: :t
│ ├── depth: 0
│ ├── name_loc: (1,0)-(1,1) = "t"
│ ├── value:
│ │ @ IntegerNode (location: (1,2)-(1,3))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (1,1)-(1,2) = "="
└── @ IfNode (location: (1,4)-(1,13))
+ ├── flags: newline
├── if_keyword_loc: ∅
├── predicate:
│ @ ParenthesesNode (location: (1,4)-(1,9))
+ │ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,5)-(1,8))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,5)-(1,8))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
@@ -34,17 +40,22 @@
├── then_keyword_loc: (1,9)-(1,10) = "?"
├── statements:
│ @ StatementsNode (location: (1,10)-(1,11))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (1,10)-(1,11))
+ │ ├── flags: newline
│ ├── name: :t
│ └── depth: 0
├── consequent:
│ @ ElseNode (location: (1,11)-(1,13))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (1,11)-(1,12) = ":"
│ ├── statements:
│ │ @ StatementsNode (location: (1,12)-(1,13))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ConstantReadNode (location: (1,12)-(1,13))
+ │ │ ├── flags: newline
│ │ └── name: :T
│ └── end_keyword_loc: ∅
└── end_keyword_loc: ∅
diff --git a/test/prism/snapshots/whitequark/trailing_forward_arg.txt b/test/prism/snapshots/whitequark/trailing_forward_arg.txt
index e12dad132b..3cb3f8ae08 100644
--- a/test/prism/snapshots/whitequark/trailing_forward_arg.txt
+++ b/test/prism/snapshots/whitequark/trailing_forward_arg.txt
@@ -1,14 +1,18 @@
@ ProgramNode (location: (1,0)-(1,40))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,40))
+ ├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,40))
+ ├── flags: newline
├── name: :foo
├── name_loc: (1,4)-(1,7) = "foo"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (1,8)-(1,17))
+ │ ├── flags: ∅
│ ├── requireds: (length: 2)
│ │ ├── @ RequiredParameterNode (location: (1,8)-(1,9))
│ │ │ ├── flags: ∅
@@ -22,12 +26,14 @@
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (1,14)-(1,17))
+ │ │ └── flags: ∅
│ └── block: ∅
├── 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: :bar
@@ -38,12 +44,14 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 3)
│ │ ├── @ LocalVariableReadNode (location: (1,24)-(1,25))
+ │ │ │ ├── flags: ∅
│ │ │ ├── name: :a
│ │ │ └── depth: 0
│ │ ├── @ IntegerNode (location: (1,27)-(1,29))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ └── @ ForwardingArgumentsNode (location: (1,31)-(1,34))
+ │ │ └── flags: ∅
│ ├── closing_loc: (1,34)-(1,35) = ")"
│ └── block: ∅
├── locals: [:a, :b]
diff --git a/test/prism/snapshots/whitequark/true.txt b/test/prism/snapshots/whitequark/true.txt
index 3e1ceef586..ba705338ba 100644
--- a/test/prism/snapshots/whitequark/true.txt
+++ b/test/prism/snapshots/whitequark/true.txt
@@ -1,6 +1,9 @@
@ ProgramNode (location: (1,0)-(1,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ TrueNode (location: (1,0)-(1,4))
+ └── flags: newline, static_literal
diff --git a/test/prism/snapshots/whitequark/unary_num_pow_precedence.txt b/test/prism/snapshots/whitequark/unary_num_pow_precedence.txt
index e14b0567e7..0f2fb776b4 100644
--- a/test/prism/snapshots/whitequark/unary_num_pow_precedence.txt
+++ b/test/prism/snapshots/whitequark/unary_num_pow_precedence.txt
@@ -1,12 +1,15 @@
@ ProgramNode (location: (1,0)-(5,10))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,10))
+ ├── flags: ∅
└── body: (length: 3)
├── @ CallNode (location: (1,0)-(1,10))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ FloatNode (location: (1,0)-(1,4))
+ │ │ ├── flags: static_literal
│ │ └── value: 2.0
│ ├── call_operator_loc: ∅
│ ├── name: :**
@@ -17,18 +20,18 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (1,8)-(1,10))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 10
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,8))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,1)-(3,8))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (3,1)-(3,2))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :**
@@ -39,7 +42,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (3,6)-(3,8))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 10
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
@@ -51,12 +54,13 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (5,0)-(5,10))
- ├── flags: ∅
+ ├── flags: newline
├── receiver:
│ @ CallNode (location: (5,1)-(5,10))
│ ├── flags: ∅
│ ├── receiver:
│ │ @ FloatNode (location: (5,1)-(5,4))
+ │ │ ├── flags: static_literal
│ │ └── value: 2.0
│ ├── call_operator_loc: ∅
│ ├── name: :**
@@ -67,7 +71,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (5,8)-(5,10))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 10
│ ├── closing_loc: ∅
│ └── block: ∅
diff --git a/test/prism/snapshots/whitequark/undef.txt b/test/prism/snapshots/whitequark/undef.txt
index 163cc2e867..a24ba2f868 100644
--- a/test/prism/snapshots/whitequark/undef.txt
+++ b/test/prism/snapshots/whitequark/undef.txt
@@ -1,38 +1,44 @@
@ ProgramNode (location: (1,0)-(1,27))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,27))
+ ├── flags: ∅
└── body: (length: 1)
└── @ UndefNode (location: (1,0)-(1,27))
+ ├── flags: newline
├── names: (length: 3)
│ ├── @ SymbolNode (location: (1,6)-(1,9))
- │ │ ├── flags: forced_us_ascii_encoding
+ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,6)-(1,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── @ 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"
│ └── @ InterpolatedSymbolNode (location: (1,17)-(1,27))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,17)-(1,19) = ":\""
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (1,19)-(1,22))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (1,19)-(1,22) = "foo"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo"
│ │ └── @ EmbeddedStatementsNode (location: (1,22)-(1,26))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,22)-(1,24) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,24)-(1,25))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (1,24)-(1,25))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── closing_loc: (1,25)-(1,26) = "}"
│ └── closing_loc: (1,26)-(1,27) = "\""
diff --git a/test/prism/snapshots/whitequark/unless.txt b/test/prism/snapshots/whitequark/unless.txt
index a3bbbe69c8..4aa47f99a5 100644
--- a/test/prism/snapshots/whitequark/unless.txt
+++ b/test/prism/snapshots/whitequark/unless.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(3,20))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,20))
+ ├── flags: ∅
└── body: (length: 2)
├── @ UnlessNode (location: (1,0)-(1,24))
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,6) = "unless"
│ ├── predicate:
│ │ @ CallNode (location: (1,7)-(1,10))
@@ -19,9 +22,10 @@
│ ├── then_keyword_loc: (1,11)-(1,15) = "then"
│ ├── statements:
│ │ @ StatementsNode (location: (1,16)-(1,19))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,16)-(1,19))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
@@ -33,6 +37,7 @@
│ ├── consequent: ∅
│ └── end_keyword_loc: (1,21)-(1,24) = "end"
└── @ UnlessNode (location: (3,0)-(3,20))
+ ├── flags: newline
├── keyword_loc: (3,0)-(3,6) = "unless"
├── predicate:
│ @ CallNode (location: (3,7)-(3,10))
@@ -48,9 +53,10 @@
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (3,12)-(3,15))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (3,12)-(3,15))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/unless_else.txt b/test/prism/snapshots/whitequark/unless_else.txt
index f4f95379e5..1561085585 100644
--- a/test/prism/snapshots/whitequark/unless_else.txt
+++ b/test/prism/snapshots/whitequark/unless_else.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(3,30))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,30))
+ ├── flags: ∅
└── body: (length: 2)
├── @ UnlessNode (location: (1,0)-(1,34))
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,6) = "unless"
│ ├── predicate:
│ │ @ CallNode (location: (1,7)-(1,10))
@@ -19,9 +22,10 @@
│ ├── then_keyword_loc: (1,11)-(1,15) = "then"
│ ├── statements:
│ │ @ StatementsNode (location: (1,16)-(1,19))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,16)-(1,19))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
@@ -32,12 +36,14 @@
│ │ └── block: ∅
│ ├── consequent:
│ │ @ ElseNode (location: (1,21)-(1,34))
+ │ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (1,21)-(1,25) = "else"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,26)-(1,29))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,26)-(1,29))
- │ │ │ ├── flags: variable_call, ignore_visibility
+ │ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :baz
@@ -49,6 +55,7 @@
│ │ └── end_keyword_loc: (1,31)-(1,34) = "end"
│ └── end_keyword_loc: (1,31)-(1,34) = "end"
└── @ UnlessNode (location: (3,0)-(3,30))
+ ├── flags: newline
├── keyword_loc: (3,0)-(3,6) = "unless"
├── predicate:
│ @ CallNode (location: (3,7)-(3,10))
@@ -64,9 +71,10 @@
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (3,12)-(3,15))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (3,12)-(3,15))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
@@ -77,12 +85,14 @@
│ └── block: ∅
├── consequent:
│ @ ElseNode (location: (3,17)-(3,30))
+ │ ├── flags: ∅
│ ├── else_keyword_loc: (3,17)-(3,21) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (3,22)-(3,25))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (3,22)-(3,25))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :baz
diff --git a/test/prism/snapshots/whitequark/unless_mod.txt b/test/prism/snapshots/whitequark/unless_mod.txt
index d4dfda6b2c..7bdc0446b2 100644
--- a/test/prism/snapshots/whitequark/unless_mod.txt
+++ b/test/prism/snapshots/whitequark/unless_mod.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ UnlessNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── keyword_loc: (1,4)-(1,10) = "unless"
├── predicate:
│ @ CallNode (location: (1,11)-(1,14))
@@ -19,9 +22,10 @@
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (1,0)-(1,3))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,0)-(1,3))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/until.txt b/test/prism/snapshots/whitequark/until.txt
index e5f60a2cf7..0a0f2b35be 100644
--- a/test/prism/snapshots/whitequark/until.txt
+++ b/test/prism/snapshots/whitequark/until.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,19))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,19))
+ ├── flags: ∅
└── body: (length: 2)
├── @ UntilNode (location: (1,0)-(1,21))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,5) = "until"
│ ├── closing_loc: (1,18)-(1,21) = "end"
│ ├── predicate:
@@ -20,9 +22,10 @@
│ │ └── block: ∅
│ └── statements:
│ @ StatementsNode (location: (1,13)-(1,17))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,13)-(1,17))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :meth
@@ -32,7 +35,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ UntilNode (location: (3,0)-(3,19))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (3,0)-(3,5) = "until"
├── closing_loc: (3,16)-(3,19) = "end"
├── predicate:
@@ -48,9 +51,10 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (3,11)-(3,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (3,11)-(3,15))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :meth
diff --git a/test/prism/snapshots/whitequark/until_mod.txt b/test/prism/snapshots/whitequark/until_mod.txt
index 0b7e2360b5..f491018524 100644
--- a/test/prism/snapshots/whitequark/until_mod.txt
+++ b/test/prism/snapshots/whitequark/until_mod.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ UntilNode (location: (1,0)-(1,14))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (1,5)-(1,10) = "until"
├── closing_loc: ∅
├── predicate:
@@ -20,9 +22,10 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,4))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :meth
diff --git a/test/prism/snapshots/whitequark/until_post.txt b/test/prism/snapshots/whitequark/until_post.txt
index 5b282c363b..c5efd5ebe7 100644
--- a/test/prism/snapshots/whitequark/until_post.txt
+++ b/test/prism/snapshots/whitequark/until_post.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,24))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,24))
+ ├── flags: ∅
└── body: (length: 1)
└── @ UntilNode (location: (1,0)-(1,24))
- ├── flags: begin_modifier
+ ├── flags: newline, begin_modifier
├── keyword_loc: (1,15)-(1,20) = "until"
├── closing_loc: ∅
├── predicate:
@@ -20,14 +22,17 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── begin_keyword_loc: (1,0)-(1,5) = "begin"
├── statements:
│ @ StatementsNode (location: (1,6)-(1,10))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,6)-(1,10))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :meth
diff --git a/test/prism/snapshots/whitequark/var_and_asgn.txt b/test/prism/snapshots/whitequark/var_and_asgn.txt
index a3c90f804c..1fd4b042bf 100644
--- a/test/prism/snapshots/whitequark/var_and_asgn.txt
+++ b/test/prism/snapshots/whitequark/var_and_asgn.txt
@@ -1,14 +1,17 @@
@ ProgramNode (location: (1,0)-(1,7))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableAndWriteNode (location: (1,0)-(1,7))
+ ├── flags: newline
├── name_loc: (1,0)-(1,1) = "a"
├── operator_loc: (1,2)-(1,5) = "&&="
├── value:
│ @ IntegerNode (location: (1,6)-(1,7))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── name: :a
└── depth: 0
diff --git a/test/prism/snapshots/whitequark/var_op_asgn.txt b/test/prism/snapshots/whitequark/var_op_asgn.txt
index f20f612fa2..bc863b31c7 100644
--- a/test/prism/snapshots/whitequark/var_op_asgn.txt
+++ b/test/prism/snapshots/whitequark/var_op_asgn.txt
@@ -1,51 +1,59 @@
@ ProgramNode (location: (1,0)-(7,23))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(7,23))
+ ├── flags: ∅
└── body: (length: 4)
├── @ ClassVariableOperatorWriteNode (location: (1,0)-(1,11))
+ │ ├── flags: newline
│ ├── name: :@@var
│ ├── name_loc: (1,0)-(1,5) = "@@var"
│ ├── binary_operator_loc: (1,6)-(1,8) = "|="
│ ├── value:
│ │ @ IntegerNode (location: (1,9)-(1,11))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 10
│ └── binary_operator: :|
├── @ InstanceVariableOperatorWriteNode (location: (3,0)-(3,7))
+ │ ├── flags: newline
│ ├── name: :@a
│ ├── name_loc: (3,0)-(3,2) = "@a"
│ ├── binary_operator_loc: (3,3)-(3,5) = "|="
│ ├── value:
│ │ @ IntegerNode (location: (3,6)-(3,7))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── binary_operator: :|
├── @ 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: 1
│ ├── name: :a
│ ├── binary_operator: :+
│ └── depth: 0
└── @ DefNode (location: (7,0)-(7,23))
+ ├── flags: newline
├── name: :a
├── name_loc: (7,4)-(7,5) = "a"
├── receiver: ∅
├── parameters: ∅
├── body:
│ @ StatementsNode (location: (7,7)-(7,18))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ ClassVariableOperatorWriteNode (location: (7,7)-(7,18))
+ │ ├── flags: newline
│ ├── name: :@@var
│ ├── name_loc: (7,7)-(7,12) = "@@var"
│ ├── binary_operator_loc: (7,13)-(7,15) = "|="
│ ├── value:
│ │ @ IntegerNode (location: (7,16)-(7,18))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 10
│ └── binary_operator: :|
├── locals: []
diff --git a/test/prism/snapshots/whitequark/var_op_asgn_cmd.txt b/test/prism/snapshots/whitequark/var_op_asgn_cmd.txt
index 0bfa06d5b7..381c98a95a 100644
--- a/test/prism/snapshots/whitequark/var_op_asgn_cmd.txt
+++ b/test/prism/snapshots/whitequark/var_op_asgn_cmd.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,12))
+├── flags: ∅
├── locals: [:foo]
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableOperatorWriteNode (location: (1,0)-(1,12))
+ ├── flags: newline
├── name_loc: (1,0)-(1,3) = "foo"
├── binary_operator_loc: (1,4)-(1,6) = "+="
├── value:
@@ -19,6 +22,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (1,9)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/var_or_asgn.txt b/test/prism/snapshots/whitequark/var_or_asgn.txt
index a0531d2c30..2d034c7f2d 100644
--- a/test/prism/snapshots/whitequark/var_or_asgn.txt
+++ b/test/prism/snapshots/whitequark/var_or_asgn.txt
@@ -1,14 +1,17 @@
@ ProgramNode (location: (1,0)-(1,7))
+├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
+ ├── flags: ∅
└── body: (length: 1)
└── @ LocalVariableOrWriteNode (location: (1,0)-(1,7))
+ ├── flags: newline
├── name_loc: (1,0)-(1,1) = "a"
├── operator_loc: (1,2)-(1,5) = "||="
├── value:
│ @ IntegerNode (location: (1,6)-(1,7))
- │ ├── flags: decimal
+ │ ├── flags: static_literal, decimal
│ └── value: 1
├── name: :a
└── depth: 0
diff --git a/test/prism/snapshots/whitequark/when_multi.txt b/test/prism/snapshots/whitequark/when_multi.txt
index 1c399b642d..a4cd447b8c 100644
--- a/test/prism/snapshots/whitequark/when_multi.txt
+++ b/test/prism/snapshots/whitequark/when_multi.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,37))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,37))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseNode (location: (1,0)-(1,37))
+ ├── flags: newline
├── predicate:
│ @ CallNode (location: (1,5)-(1,8))
│ ├── flags: variable_call, ignore_visibility
@@ -17,16 +20,17 @@
│ └── block: ∅
├── conditions: (length: 1)
│ └── @ WhenNode (location: (1,10)-(1,32))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,10)-(1,14) = "when"
│ ├── conditions: (length: 2)
│ │ ├── @ StringNode (location: (1,15)-(1,20))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: (1,15)-(1,16) = "'"
│ │ │ ├── content_loc: (1,16)-(1,19) = "bar"
│ │ │ ├── closing_loc: (1,19)-(1,20) = "'"
│ │ │ └── unescaped: "bar"
│ │ └── @ StringNode (location: (1,22)-(1,27))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (1,22)-(1,23) = "'"
│ │ ├── content_loc: (1,23)-(1,26) = "baz"
│ │ ├── closing_loc: (1,26)-(1,27) = "'"
@@ -34,9 +38,10 @@
│ ├── then_keyword_loc: ∅
│ └── statements:
│ @ StatementsNode (location: (1,29)-(1,32))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,29)-(1,32))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/when_splat.txt b/test/prism/snapshots/whitequark/when_splat.txt
index 351631714e..9f1d695362 100644
--- a/test/prism/snapshots/whitequark/when_splat.txt
+++ b/test/prism/snapshots/whitequark/when_splat.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,43))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,43))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseNode (location: (1,0)-(1,43))
+ ├── flags: newline
├── predicate:
│ @ CallNode (location: (1,5)-(1,8))
│ ├── flags: variable_call, ignore_visibility
@@ -17,12 +20,14 @@
│ └── block: ∅
├── conditions: (length: 2)
│ ├── @ WhenNode (location: (1,10)-(1,27))
+ │ │ ├── flags: ∅
│ │ ├── keyword_loc: (1,10)-(1,14) = "when"
│ │ ├── conditions: (length: 2)
│ │ │ ├── @ IntegerNode (location: (1,15)-(1,16))
- │ │ │ │ ├── flags: decimal
+ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ SplatNode (location: (1,18)-(1,22))
+ │ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (1,18)-(1,19) = "*"
│ │ │ └── expression:
│ │ │ @ CallNode (location: (1,19)-(1,22))
@@ -38,9 +43,10 @@
│ │ ├── then_keyword_loc: ∅
│ │ └── statements:
│ │ @ StatementsNode (location: (1,24)-(1,27))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,24)-(1,27))
- │ │ ├── flags: variable_call, ignore_visibility
+ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
@@ -50,9 +56,11 @@
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── @ WhenNode (location: (1,29)-(1,38))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,29)-(1,33) = "when"
│ ├── conditions: (length: 1)
│ │ └── @ SplatNode (location: (1,34)-(1,38))
+ │ │ ├── flags: ∅
│ │ ├── operator_loc: (1,34)-(1,35) = "*"
│ │ └── expression:
│ │ @ CallNode (location: (1,35)-(1,38))
diff --git a/test/prism/snapshots/whitequark/when_then.txt b/test/prism/snapshots/whitequark/when_then.txt
index eb6f261ba4..c7af419fbe 100644
--- a/test/prism/snapshots/whitequark/when_then.txt
+++ b/test/prism/snapshots/whitequark/when_then.txt
@@ -1,9 +1,12 @@
@ ProgramNode (location: (1,0)-(1,34))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,34))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CaseNode (location: (1,0)-(1,34))
+ ├── flags: newline
├── predicate:
│ @ CallNode (location: (1,5)-(1,8))
│ ├── flags: variable_call, ignore_visibility
@@ -17,10 +20,11 @@
│ └── block: ∅
├── conditions: (length: 1)
│ └── @ WhenNode (location: (1,10)-(1,29))
+ │ ├── flags: ∅
│ ├── keyword_loc: (1,10)-(1,14) = "when"
│ ├── conditions: (length: 1)
│ │ └── @ StringNode (location: (1,15)-(1,20))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (1,15)-(1,16) = "'"
│ │ ├── content_loc: (1,16)-(1,19) = "bar"
│ │ ├── closing_loc: (1,19)-(1,20) = "'"
@@ -28,9 +32,10 @@
│ ├── then_keyword_loc: (1,21)-(1,25) = "then"
│ └── statements:
│ @ StatementsNode (location: (1,26)-(1,29))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,26)-(1,29))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
diff --git a/test/prism/snapshots/whitequark/while.txt b/test/prism/snapshots/whitequark/while.txt
index 72f9971fe5..949a3952d3 100644
--- a/test/prism/snapshots/whitequark/while.txt
+++ b/test/prism/snapshots/whitequark/while.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(3,19))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,19))
+ ├── flags: ∅
└── body: (length: 2)
├── @ WhileNode (location: (1,0)-(1,21))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,5) = "while"
│ ├── closing_loc: (1,18)-(1,21) = "end"
│ ├── predicate:
@@ -20,9 +22,10 @@
│ │ └── block: ∅
│ └── statements:
│ @ StatementsNode (location: (1,13)-(1,17))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,13)-(1,17))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :meth
@@ -32,7 +35,7 @@
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ WhileNode (location: (3,0)-(3,19))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (3,0)-(3,5) = "while"
├── closing_loc: (3,16)-(3,19) = "end"
├── predicate:
@@ -48,9 +51,10 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (3,11)-(3,15))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (3,11)-(3,15))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :meth
diff --git a/test/prism/snapshots/whitequark/while_mod.txt b/test/prism/snapshots/whitequark/while_mod.txt
index 50a8f84d81..696163e433 100644
--- a/test/prism/snapshots/whitequark/while_mod.txt
+++ b/test/prism/snapshots/whitequark/while_mod.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ WhileNode (location: (1,0)-(1,14))
- ├── flags: ∅
+ ├── flags: newline
├── keyword_loc: (1,5)-(1,10) = "while"
├── closing_loc: ∅
├── predicate:
@@ -20,9 +22,10 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
+ ├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,4))
- ├── flags: variable_call, ignore_visibility
+ ├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :meth
diff --git a/test/prism/snapshots/whitequark/while_post.txt b/test/prism/snapshots/whitequark/while_post.txt
index 63c6c84a24..32cef381f1 100644
--- a/test/prism/snapshots/whitequark/while_post.txt
+++ b/test/prism/snapshots/whitequark/while_post.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,24))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,24))
+ ├── flags: ∅
└── body: (length: 1)
└── @ WhileNode (location: (1,0)-(1,24))
- ├── flags: begin_modifier
+ ├── flags: newline, begin_modifier
├── keyword_loc: (1,15)-(1,20) = "while"
├── closing_loc: ∅
├── predicate:
@@ -20,14 +22,17 @@
│ └── block: ∅
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── begin_keyword_loc: (1,0)-(1,5) = "begin"
├── statements:
│ @ StatementsNode (location: (1,6)-(1,10))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (1,6)-(1,10))
- │ ├── flags: variable_call, ignore_visibility
+ │ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :meth
diff --git a/test/prism/snapshots/whitequark/xstring_interp.txt b/test/prism/snapshots/whitequark/xstring_interp.txt
index 0676ea9683..7808b93250 100644
--- a/test/prism/snapshots/whitequark/xstring_interp.txt
+++ b/test/prism/snapshots/whitequark/xstring_interp.txt
@@ -1,21 +1,26 @@
@ ProgramNode (location: (1,0)-(1,14))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
+ ├── flags: ∅
└── body: (length: 1)
└── @ InterpolatedXStringNode (location: (1,0)-(1,14))
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "`"
├── parts: (length: 3)
│ ├── @ StringNode (location: (1,1)-(1,4))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (1,1)-(1,4) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── @ EmbeddedStatementsNode (location: (1,4)-(1,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,4)-(1,6) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,6)-(1,9))
+ │ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,6)-(1,9))
│ │ │ ├── flags: variable_call, ignore_visibility
@@ -29,7 +34,7 @@
│ │ │ └── block: ∅
│ │ └── closing_loc: (1,9)-(1,10) = "}"
│ └── @ StringNode (location: (1,10)-(1,13))
- │ ├── flags: frozen
+ │ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (1,10)-(1,13) = "baz"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/xstring_plain.txt b/test/prism/snapshots/whitequark/xstring_plain.txt
index 97084286d9..dae47ddcff 100644
--- a/test/prism/snapshots/whitequark/xstring_plain.txt
+++ b/test/prism/snapshots/whitequark/xstring_plain.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,8))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
+ ├── flags: ∅
└── body: (length: 1)
└── @ XStringNode (location: (1,0)-(1,8))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "`"
├── content_loc: (1,1)-(1,7) = "foobar"
├── closing_loc: (1,7)-(1,8) = "`"
diff --git a/test/prism/snapshots/whitequark/zsuper.txt b/test/prism/snapshots/whitequark/zsuper.txt
index 9c28128d06..f64ecb3594 100644
--- a/test/prism/snapshots/whitequark/zsuper.txt
+++ b/test/prism/snapshots/whitequark/zsuper.txt
@@ -1,7 +1,10 @@
@ ProgramNode (location: (1,0)-(1,5))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,5))
+ ├── flags: ∅
└── body: (length: 1)
└── @ ForwardingSuperNode (location: (1,0)-(1,5))
+ ├── flags: newline
└── block: ∅
diff --git a/test/prism/snapshots/xstring.txt b/test/prism/snapshots/xstring.txt
index 1a177026db..837cd581a4 100644
--- a/test/prism/snapshots/xstring.txt
+++ b/test/prism/snapshots/xstring.txt
@@ -1,27 +1,32 @@
@ ProgramNode (location: (1,0)-(13,4))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(13,4))
+ ├── flags: ∅
└── body: (length: 6)
├── @ XStringNode (location: (1,0)-(1,7))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,3) = "%x["
│ ├── content_loc: (1,3)-(1,6) = "foo"
│ ├── closing_loc: (1,6)-(1,7) = "]"
│ └── unescaped: "foo"
├── @ InterpolatedXStringNode (location: (3,0)-(3,16))
+ │ ├── flags: newline
│ ├── opening_loc: (3,0)-(3,1) = "`"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (3,1)-(3,5))
- │ │ │ ├── flags: frozen
+ │ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,1)-(3,5) = "foo "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo "
│ │ ├── @ EmbeddedStatementsNode (location: (3,5)-(3,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,5)-(3,7) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (3,7)-(3,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (3,7)-(3,10))
│ │ │ │ ├── flags: variable_call, ignore_visibility
@@ -35,32 +40,32 @@
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (3,10)-(3,11) = "}"
│ │ └── @ StringNode (location: (3,11)-(3,15))
- │ │ ├── flags: frozen
+ │ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (3,11)-(3,15) = " baz"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " baz"
│ └── closing_loc: (3,15)-(3,16) = "`"
├── @ XStringNode (location: (5,0)-(5,5))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (5,0)-(5,1) = "`"
│ ├── content_loc: (5,1)-(5,4) = "foo"
│ ├── closing_loc: (5,4)-(5,5) = "`"
│ └── unescaped: "foo"
├── @ XStringNode (location: (7,0)-(9,1))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (7,0)-(7,3) = "%x{"
│ ├── content_loc: (7,3)-(9,0) = "\n foo\n"
│ ├── closing_loc: (9,0)-(9,1) = "}"
│ └── unescaped: "\n foo\n"
├── @ XStringNode (location: (11,0)-(11,2))
- │ ├── flags: ∅
+ │ ├── flags: newline
│ ├── opening_loc: (11,0)-(11,1) = "`"
│ ├── content_loc: (11,1)-(11,1) = ""
│ ├── closing_loc: (11,1)-(11,2) = "`"
│ └── unescaped: ""
└── @ XStringNode (location: (13,0)-(13,4))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (13,0)-(13,3) = "%x{"
├── content_loc: (13,3)-(13,3) = ""
├── closing_loc: (13,3)-(13,4) = "}"
diff --git a/test/prism/snapshots/xstring_with_backslash.txt b/test/prism/snapshots/xstring_with_backslash.txt
index 7e0fa1ab5f..ca58f5cd40 100644
--- a/test/prism/snapshots/xstring_with_backslash.txt
+++ b/test/prism/snapshots/xstring_with_backslash.txt
@@ -1,10 +1,12 @@
@ ProgramNode (location: (1,0)-(1,6))
+├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
+ ├── flags: ∅
└── body: (length: 1)
└── @ XStringNode (location: (1,0)-(1,6))
- ├── flags: ∅
+ ├── flags: newline
├── opening_loc: (1,0)-(1,1) = "`"
├── content_loc: (1,1)-(1,5) = "f\\oo"
├── closing_loc: (1,5)-(1,6) = "`"
diff --git a/test/prism/snapshots/yield.txt b/test/prism/snapshots/yield.txt
index e9680c3b2d..c62751b8e6 100644
--- a/test/prism/snapshots/yield.txt
+++ b/test/prism/snapshots/yield.txt
@@ -1,17 +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,19))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (1,4)-(1,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,9)-(1,14))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ YieldNode (location: (1,9)-(1,14))
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (1,9)-(1,14) = "yield"
│ │ ├── lparen_loc: ∅
│ │ ├── arguments: ∅
@@ -24,14 +29,17 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (1,16)-(1,19) = "end"
├── @ DefNode (location: (3,0)-(3,21))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (3,4)-(3,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (3,9)-(3,16))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ YieldNode (location: (3,9)-(3,16))
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (3,9)-(3,14) = "yield"
│ │ ├── lparen_loc: (3,14)-(3,15) = "("
│ │ ├── arguments: ∅
@@ -44,14 +52,17 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (3,18)-(3,21) = "end"
├── @ DefNode (location: (5,0)-(5,22))
+ │ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (5,4)-(5,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (5,9)-(5,17))
+ │ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ YieldNode (location: (5,9)-(5,17))
+ │ │ ├── flags: newline
│ │ ├── keyword_loc: (5,9)-(5,14) = "yield"
│ │ ├── lparen_loc: (5,14)-(5,15) = "("
│ │ ├── arguments:
@@ -59,7 +70,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (5,15)-(5,16))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── rparen_loc: (5,16)-(5,17) = ")"
│ ├── locals: []
@@ -70,14 +81,17 @@
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (5,19)-(5,22) = "end"
└── @ DefNode (location: (7,0)-(7,28))
+ ├── flags: newline
├── name: :foo
├── name_loc: (7,4)-(7,7) = "foo"
├── receiver: ∅
├── parameters: ∅
├── body:
│ @ StatementsNode (location: (7,9)-(7,23))
+ │ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ YieldNode (location: (7,9)-(7,23))
+ │ ├── flags: newline
│ ├── keyword_loc: (7,9)-(7,14) = "yield"
│ ├── lparen_loc: (7,14)-(7,15) = "("
│ ├── arguments:
@@ -85,13 +99,13 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 3)
│ │ ├── @ IntegerNode (location: (7,15)-(7,16))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── @ IntegerNode (location: (7,18)-(7,19))
- │ │ │ ├── flags: decimal
+ │ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── @ IntegerNode (location: (7,21)-(7,22))
- │ │ ├── flags: decimal
+ │ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ └── rparen_loc: (7,22)-(7,23) = ")"
├── locals: []