summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2023-12-08 10:10:43 -0500
committergit <svn-admin@ruby-lang.org>2023-12-08 18:59:52 +0000
commit98e3552cfb80d4d3a8176d9969ea4956adee93d5 (patch)
tree65908827452245cd1d3d234e0c814f22f5981919
parenta94a2eea34a7d6e1bd0e97b5a3bc73adcfcbcb31 (diff)
[ruby/prism] Add necessary encoding flags for symbols and regex
This doesn't actually fix the encodings for symbols and regex, unfortunately. But I wanted to get this change in because it is the last AST change we're going to make before 3.3 is released. So, if consumers want, they can start to check these flags to determine the encoding, even though it will be wrong. Then once we actually set them correctly, everything should work. https://github.com/ruby/prism/commit/9b35f7e891
-rw-r--r--prism/config.yml18
-rw-r--r--test/prism/errors_test.rb26
-rw-r--r--test/prism/snapshots/alias.txt19
-rw-r--r--test/prism/snapshots/arrays.txt20
-rw-r--r--test/prism/snapshots/begin_ensure.txt1
-rw-r--r--test/prism/snapshots/case.txt8
-rw-r--r--test/prism/snapshots/dos_endings.txt1
-rw-r--r--test/prism/snapshots/global_variables.txt23
-rw-r--r--test/prism/snapshots/hashes.txt10
-rw-r--r--test/prism/snapshots/if.txt1
-rw-r--r--test/prism/snapshots/method_calls.txt51
-rw-r--r--test/prism/snapshots/methods.txt2
-rw-r--r--test/prism/snapshots/patterns.txt32
-rw-r--r--test/prism/snapshots/ranges.txt2
-rw-r--r--test/prism/snapshots/rescue.txt1
-rw-r--r--test/prism/snapshots/seattlerb/TestRubyParserShared.txt10
-rw-r--r--test/prism/snapshots/seattlerb/alias_resword.txt2
-rw-r--r--test/prism/snapshots/seattlerb/assoc__bare.txt1
-rw-r--r--test/prism/snapshots/seattlerb/assoc_label.txt1
-rw-r--r--test/prism/snapshots/seattlerb/block_command_operation_colon.txt2
-rw-r--r--test/prism/snapshots/seattlerb/block_command_operation_dot.txt2
-rw-r--r--test/prism/snapshots/seattlerb/block_kwarg_lvar.txt1
-rw-r--r--test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt2
-rw-r--r--test/prism/snapshots/seattlerb/block_optarg.txt1
-rw-r--r--test/prism/snapshots/seattlerb/block_reg_optarg.txt1
-rw-r--r--test/prism/snapshots/seattlerb/bug_215.txt1
-rw-r--r--test/prism/snapshots/seattlerb/bug_249.txt1
-rw-r--r--test/prism/snapshots/seattlerb/bug_case_when_regexp.txt1
-rw-r--r--test/prism/snapshots/seattlerb/bug_hash_args.txt2
-rw-r--r--test/prism/snapshots/seattlerb/bug_hash_args_trailing_comma.txt2
-rw-r--r--test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt1
-rw-r--r--test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt2
-rw-r--r--test/prism/snapshots/seattlerb/call_array_arg.txt2
-rw-r--r--test/prism/snapshots/seattlerb/call_array_lit_inline_hash.txt2
-rw-r--r--test/prism/snapshots/seattlerb/call_assoc_new.txt1
-rw-r--r--test/prism/snapshots/seattlerb/call_assoc_new_if_multiline.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in.txt42
-rw-r--r--test/prism/snapshots/seattlerb/case_in_31.txt3
-rw-r--r--test/prism/snapshots/seattlerb/case_in_37.txt3
-rw-r--r--test/prism/snapshots/seattlerb/case_in_42.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_42_2.txt1
-rw-r--r--test/prism/snapshots/seattlerb/case_in_47.txt4
-rw-r--r--test/prism/snapshots/seattlerb/case_in_67.txt1
-rw-r--r--test/prism/snapshots/seattlerb/case_in_86.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_86_2.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_array_pat_const.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_const.txt1
-rw-r--r--test/prism/snapshots/seattlerb/case_in_else.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_find.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_find_array.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat.txt4
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt5
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt3
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt3
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt3
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt3
-rw-r--r--test/prism/snapshots/seattlerb/case_in_multiple.txt3
-rw-r--r--test/prism/snapshots/seattlerb/case_in_or.txt2
-rw-r--r--test/prism/snapshots/seattlerb/defn_args_forward_args.txt1
-rw-r--r--test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt1
-rw-r--r--test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt1
-rw-r--r--test/prism/snapshots/seattlerb/difficult2_.txt1
-rw-r--r--test/prism/snapshots/seattlerb/difficult7_.txt2
-rw-r--r--test/prism/snapshots/seattlerb/dstr_lex_state.txt1
-rw-r--r--test/prism/snapshots/seattlerb/dsym_esc_to_sym.txt1
-rw-r--r--test/prism/snapshots/seattlerb/dsym_to_sym.txt4
-rw-r--r--test/prism/snapshots/seattlerb/if_symbol.txt1
-rw-r--r--test/prism/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt2
-rw-r--r--test/prism/snapshots/seattlerb/magic_encoding_comment.txt1
-rw-r--r--test/prism/snapshots/seattlerb/multiline_hash_declaration.txt3
-rw-r--r--test/prism/snapshots/seattlerb/non_interpolated_symbol_array_line_breaks.txt2
-rw-r--r--test/prism/snapshots/seattlerb/op_asgn_index_command_call.txt1
-rw-r--r--test/prism/snapshots/seattlerb/parse_line_hash_lit.txt1
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_058.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_058_2.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_069.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_076.txt2
-rw-r--r--test/prism/snapshots/seattlerb/qsymbols.txt3
-rw-r--r--test/prism/snapshots/seattlerb/qsymbols_interp.txt2
-rw-r--r--test/prism/snapshots/seattlerb/quoted_symbol_hash_arg.txt1
-rw-r--r--test/prism/snapshots/seattlerb/quoted_symbol_keys.txt2
-rw-r--r--test/prism/snapshots/seattlerb/rescue_do_end_ensure_result.txt2
-rw-r--r--test/prism/snapshots/seattlerb/rescue_do_end_no_raise.txt4
-rw-r--r--test/prism/snapshots/seattlerb/rescue_do_end_raised.txt1
-rw-r--r--test/prism/snapshots/seattlerb/rescue_do_end_rescued.txt3
-rw-r--r--test/prism/snapshots/seattlerb/return_call_assocs.txt6
-rw-r--r--test/prism/snapshots/seattlerb/symbol_empty.txt1
-rw-r--r--test/prism/snapshots/seattlerb/symbols.txt3
-rw-r--r--test/prism/snapshots/seattlerb/symbols_interp.txt3
-rw-r--r--test/prism/snapshots/seattlerb/unary_plus_on_literal.txt1
-rw-r--r--test/prism/snapshots/seattlerb/yield_call_assocs.txt6
-rw-r--r--test/prism/snapshots/spanning_heredoc.txt3
-rw-r--r--test/prism/snapshots/strings.txt1
-rw-r--r--test/prism/snapshots/super.txt3
-rw-r--r--test/prism/snapshots/symbols.txt52
-rw-r--r--test/prism/snapshots/undef.txt11
-rw-r--r--test/prism/snapshots/unless.txt2
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/alias.txt2
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/case.txt3
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/class.txt1
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/if.txt1
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/kwbegin.txt1
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/literal.txt17
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/module.txt1
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/pattern.txt4
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/send.txt10
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/undef.txt3
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/while.txt2
-rw-r--r--test/prism/snapshots/unparser/corpus/semantic/undef.txt3
-rw-r--r--test/prism/snapshots/until.txt2
-rw-r--r--test/prism/snapshots/while.txt2
-rw-r--r--test/prism/snapshots/whitequark/alias.txt2
-rw-r--r--test/prism/snapshots/whitequark/arg_label.txt3
-rw-r--r--test/prism/snapshots/whitequark/args_args_assocs.txt2
-rw-r--r--test/prism/snapshots/whitequark/args_args_assocs_comma.txt1
-rw-r--r--test/prism/snapshots/whitequark/args_assocs.txt6
-rw-r--r--test/prism/snapshots/whitequark/args_assocs_comma.txt1
-rw-r--r--test/prism/snapshots/whitequark/args_assocs_legacy.txt6
-rw-r--r--test/prism/snapshots/whitequark/array_symbols.txt2
-rw-r--r--test/prism/snapshots/whitequark/array_symbols_interp.txt1
-rw-r--r--test/prism/snapshots/whitequark/bug_cmdarg.txt2
-rw-r--r--test/prism/snapshots/whitequark/bug_do_block_in_hash_brace.txt13
-rw-r--r--test/prism/snapshots/whitequark/class_super_label.txt1
-rw-r--r--test/prism/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt1
-rw-r--r--test/prism/snapshots/whitequark/hash_hashrocket.txt1
-rw-r--r--test/prism/snapshots/whitequark/hash_kwsplat.txt1
-rw-r--r--test/prism/snapshots/whitequark/hash_label.txt1
-rw-r--r--test/prism/snapshots/whitequark/hash_label_end.txt3
-rw-r--r--test/prism/snapshots/whitequark/hash_pair_value_omission.txt4
-rw-r--r--test/prism/snapshots/whitequark/interp_digit_var.txt10
-rw-r--r--test/prism/snapshots/whitequark/keyword_argument_omission.txt2
-rw-r--r--test/prism/snapshots/whitequark/lbrace_arg_after_command_args.txt1
-rw-r--r--test/prism/snapshots/whitequark/multiple_pattern_matches.txt8
-rw-r--r--test/prism/snapshots/whitequark/newline_in_hash_argument.txt4
-rw-r--r--test/prism/snapshots/whitequark/parser_bug_525.txt1
-rw-r--r--test/prism/snapshots/whitequark/parser_slash_slash_n_escaping_in_literals.txt5
-rw-r--r--test/prism/snapshots/whitequark/pattern_matching_single_line_allowed_omission_of_parentheses.txt10
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_10279.txt1
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_11380.txt2
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_11873_a.txt4
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_12073.txt1
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_12669.txt4
-rw-r--r--test/prism/snapshots/whitequark/ruby_bug_9669.txt1
-rw-r--r--test/prism/snapshots/whitequark/symbol_plain.txt2
-rw-r--r--test/prism/snapshots/whitequark/undef.txt2
148 files changed, 645 insertions, 13 deletions
diff --git a/prism/config.yml b/prism/config.yml
index 5c1cddd037..50299141bd 100644
--- a/prism/config.yml
+++ b/prism/config.yml
@@ -392,6 +392,12 @@ flags:
comment: "s - forces the Windows-31J encoding"
- name: UTF_8
comment: "u - forces the UTF-8 encoding"
+ - name: FORCED_UTF8_ENCODING
+ comment: "internal bytes forced the encoding to UTF-8"
+ - name: FORCED_BINARY_ENCODING
+ comment: "internal bytes forced the encoding to binary"
+ - name: FORCED_US_ASCII_ENCODING
+ comment: "internal bytes forced the encoding to US-ASCII"
comment: Flags for regular expression and match last line nodes.
- name: StringFlags
values:
@@ -402,6 +408,15 @@ flags:
- name: FROZEN
comment: "frozen by virtue of a `frozen_string_literal` comment"
comment: Flags for string nodes.
+ - name: SymbolFlags
+ values:
+ - name: FORCED_UTF8_ENCODING
+ comment: "internal bytes forced the encoding to UTF-8"
+ - name: FORCED_BINARY_ENCODING
+ comment: "internal bytes forced the encoding to binary"
+ - name: FORCED_US_ASCII_ENCODING
+ comment: "internal bytes forced the encoding to US-ASCII"
+ comment: Flags for symbol nodes.
nodes:
- name: AliasGlobalVariableNode
fields:
@@ -2465,6 +2480,9 @@ nodes:
^^^^^^^^^^^^^^
- name: SymbolNode
fields:
+ - name: flags
+ type: flags
+ kind: SymbolFlags
- name: opening_loc
type: location?
- name: value_loc
diff --git a/test/prism/errors_test.rb b/test/prism/errors_test.rb
index 31e01fa035..5c14bfa977 100644
--- a/test/prism/errors_test.rb
+++ b/test/prism/errors_test.rb
@@ -407,7 +407,7 @@ module Prism
ArgumentsNode(0, [
KeywordHashNode(
[AssocNode(
- SymbolNode(nil, Location(), Location(), "foo"),
+ SymbolNode(0, nil, Location(), Location(), "foo"),
expression("bar"),
nil
)]
@@ -585,16 +585,16 @@ module Prism
expected = BeginNode(
Location(),
StatementsNode([
- LocalVariableWriteNode(:_1, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location()),
- LocalVariableWriteNode(:_2, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location()),
- LocalVariableWriteNode(:_3, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location()),
- LocalVariableWriteNode(:_4, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location()),
- LocalVariableWriteNode(:_5, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location()),
- LocalVariableWriteNode(:_6, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location()),
- LocalVariableWriteNode(:_7, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location()),
- LocalVariableWriteNode(:_8, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location()),
- LocalVariableWriteNode(:_9, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location()),
- LocalVariableWriteNode(:_10, 0, Location(), SymbolNode(Location(), Location(), nil, "a"), Location())
+ LocalVariableWriteNode(:_1, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location()),
+ LocalVariableWriteNode(:_2, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location()),
+ LocalVariableWriteNode(:_3, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location()),
+ LocalVariableWriteNode(:_4, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location()),
+ LocalVariableWriteNode(:_5, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location()),
+ LocalVariableWriteNode(:_6, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location()),
+ LocalVariableWriteNode(:_7, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location()),
+ LocalVariableWriteNode(:_8, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location()),
+ LocalVariableWriteNode(:_9, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location()),
+ LocalVariableWriteNode(:_10, 0, Location(), SymbolNode(0, Location(), Location(), nil, "a"), Location())
]),
nil,
nil,
@@ -995,7 +995,7 @@ module Prism
def test_case_without_when_clauses_errors_on_else_clause
expected = CaseMatchNode(
- SymbolNode(Location(), Location(), nil, "a"),
+ SymbolNode(0, Location(), Location(), nil, "a"),
[],
ElseNode(Location(), nil, Location()),
Location(),
@@ -1009,7 +1009,7 @@ module Prism
def test_case_without_clauses
expected = CaseNode(
- SymbolNode(Location(), Location(), nil, "a"),
+ SymbolNode(0, Location(), Location(), nil, "a"),
[],
nil,
Location(),
diff --git a/test/prism/snapshots/alias.txt b/test/prism/snapshots/alias.txt
index 20914f3c12..b473ab7a9b 100644
--- a/test/prism/snapshots/alias.txt
+++ b/test/prism/snapshots/alias.txt
@@ -6,12 +6,14 @@
├── @ AliasMethodNode (location: (1,0)-(1,15))
│ ├── new_name:
│ │ @ SymbolNode (location: (1,6)-(1,10))
+ │ │ ├── flags: ∅
│ │ ├── 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: ∅
│ │ ├── opening_loc: (1,11)-(1,12) = ":"
│ │ ├── value_loc: (1,12)-(1,15) = "bar"
│ │ ├── closing_loc: ∅
@@ -20,12 +22,14 @@
├── @ AliasMethodNode (location: (3,0)-(3,21))
│ ├── new_name:
│ │ @ SymbolNode (location: (3,6)-(3,13))
+ │ │ ├── flags: ∅
│ │ ├── 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: ∅
│ │ ├── opening_loc: (3,14)-(3,17) = "%s["
│ │ ├── value_loc: (3,17)-(3,20) = "def"
│ │ ├── closing_loc: (3,20)-(3,21) = "]"
@@ -34,12 +38,14 @@
├── @ AliasMethodNode (location: (5,0)-(5,19))
│ ├── new_name:
│ │ @ SymbolNode (location: (5,6)-(5,12))
+ │ │ ├── flags: ∅
│ │ ├── 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: ∅
│ │ ├── opening_loc: (5,13)-(5,15) = ":'"
│ │ ├── value_loc: (5,15)-(5,18) = "def"
│ │ ├── closing_loc: (5,18)-(5,19) = "'"
@@ -67,6 +73,7 @@
│ │ └── closing_loc: (7,15)-(7,16) = "\""
│ ├── old_name:
│ │ @ SymbolNode (location: (7,17)-(7,23))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (7,17)-(7,19) = ":'"
│ │ ├── value_loc: (7,19)-(7,22) = "def"
│ │ ├── closing_loc: (7,22)-(7,23) = "'"
@@ -83,12 +90,14 @@
├── @ AliasMethodNode (location: (11,0)-(11,13))
│ ├── new_name:
│ │ @ SymbolNode (location: (11,6)-(11,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (11,6)-(11,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── old_name:
│ │ @ SymbolNode (location: (11,10)-(11,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (11,10)-(11,13) = "bar"
│ │ ├── closing_loc: ∅
@@ -105,12 +114,14 @@
├── @ AliasMethodNode (location: (15,0)-(15,12))
│ ├── new_name:
│ │ @ SymbolNode (location: (15,6)-(15,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (15,6)-(15,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── old_name:
│ │ @ SymbolNode (location: (15,10)-(15,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (15,10)-(15,12) = "if"
│ │ ├── closing_loc: ∅
@@ -119,12 +130,14 @@
├── @ AliasMethodNode (location: (17,0)-(17,13))
│ ├── new_name:
│ │ @ SymbolNode (location: (17,6)-(17,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (17,6)-(17,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── old_name:
│ │ @ SymbolNode (location: (17,10)-(17,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (17,10)-(17,13) = "<=>"
│ │ ├── closing_loc: ∅
@@ -133,12 +146,14 @@
├── @ AliasMethodNode (location: (19,0)-(19,15))
│ ├── new_name:
│ │ @ SymbolNode (location: (19,6)-(19,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (19,6)-(19,7) = ":"
│ │ ├── value_loc: (19,7)-(19,9) = "=="
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "=="
│ ├── old_name:
│ │ @ SymbolNode (location: (19,10)-(19,15))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (19,10)-(19,11) = ":"
│ │ ├── value_loc: (19,11)-(19,15) = "eql?"
│ │ ├── closing_loc: ∅
@@ -147,12 +162,14 @@
├── @ AliasMethodNode (location: (21,0)-(21,9))
│ ├── new_name:
│ │ @ SymbolNode (location: (21,6)-(21,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (21,6)-(21,7) = "A"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "A"
│ ├── old_name:
│ │ @ SymbolNode (location: (21,8)-(21,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (21,8)-(21,9) = "B"
│ │ ├── closing_loc: ∅
@@ -161,12 +178,14 @@
└── @ AliasMethodNode (location: (23,0)-(23,11))
├── new_name:
│ @ SymbolNode (location: (23,6)-(23,8))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── opening_loc: (23,9)-(23,10) = ":"
│ ├── value_loc: (23,10)-(23,11) = "B"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/arrays.txt b/test/prism/snapshots/arrays.txt
index 8460cbcbdc..d8e8a1fac5 100644
--- a/test/prism/snapshots/arrays.txt
+++ b/test/prism/snapshots/arrays.txt
@@ -83,6 +83,7 @@
│ │ └── @ AssocNode (location: (5,1)-(5,12))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,1)-(5,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (5,1)-(5,2) = "a"
│ │ │ ├── closing_loc: (5,2)-(5,3) = ":"
@@ -92,11 +93,13 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 2)
│ │ │ │ ├── @ SymbolNode (location: (5,5)-(5,7))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (5,5)-(5,6) = ":"
│ │ │ │ │ ├── value_loc: (5,6)-(5,7) = "b"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "b"
│ │ │ │ └── @ SymbolNode (location: (5,9)-(5,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (5,9)-(5,10) = ":"
│ │ │ │ ├── value_loc: (5,10)-(5,11) = "c"
│ │ │ │ ├── closing_loc: ∅
@@ -110,16 +113,19 @@
│ ├── flags: ∅
│ ├── elements: (length: 5)
│ │ ├── @ SymbolNode (location: (9,1)-(9,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (9,1)-(9,2) = ":"
│ │ │ ├── value_loc: (9,2)-(9,3) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ ├── @ SymbolNode (location: (9,5)-(9,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (9,5)-(9,6) = ":"
│ │ │ ├── value_loc: (9,6)-(9,7) = "b"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b"
│ │ ├── @ SymbolNode (location: (10,0)-(10,2))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (10,0)-(10,1) = ":"
│ │ │ ├── value_loc: (10,1)-(10,2) = "c"
│ │ │ ├── closing_loc: ∅
@@ -127,6 +133,7 @@
│ │ ├── @ IntegerNode (location: (10,3)-(10,4))
│ │ │ └── flags: decimal
│ │ └── @ SymbolNode (location: (14,0)-(14,2))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (14,0)-(14,1) = ":"
│ │ ├── value_loc: (14,1)-(14,2) = "d"
│ │ ├── closing_loc: ∅
@@ -137,16 +144,19 @@
│ ├── flags: ∅
│ ├── elements: (length: 5)
│ │ ├── @ SymbolNode (location: (18,1)-(18,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (18,1)-(18,2) = ":"
│ │ │ ├── value_loc: (18,2)-(18,3) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ ├── @ SymbolNode (location: (18,5)-(18,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (18,5)-(18,6) = ":"
│ │ │ ├── value_loc: (18,6)-(18,7) = "b"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b"
│ │ ├── @ SymbolNode (location: (19,0)-(19,2))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (19,0)-(19,1) = ":"
│ │ │ ├── value_loc: (19,1)-(19,2) = "c"
│ │ │ ├── closing_loc: ∅
@@ -154,6 +164,7 @@
│ │ ├── @ IntegerNode (location: (19,3)-(19,4))
│ │ │ └── flags: decimal
│ │ └── @ SymbolNode (location: (23,0)-(23,2))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (23,0)-(23,1) = ":"
│ │ ├── value_loc: (23,1)-(23,2) = "d"
│ │ ├── closing_loc: ∅
@@ -756,16 +767,19 @@
│ ├── flags: ∅
│ ├── elements: (length: 3)
│ │ ├── @ SymbolNode (location: (62,3)-(62,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (62,3)-(62,6) = "one"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "one"
│ │ ├── @ SymbolNode (location: (62,7)-(62,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (62,7)-(62,10) = "two"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "two"
│ │ └── @ SymbolNode (location: (62,11)-(62,16))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (62,11)-(62,16) = "three"
│ │ ├── closing_loc: ∅
@@ -805,16 +819,19 @@
│ ├── flags: ∅
│ ├── elements: (length: 3)
│ │ ├── @ SymbolNode (location: (69,3)-(69,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (69,3)-(69,6) = "one"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "one"
│ │ ├── @ SymbolNode (location: (69,7)-(69,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (69,7)-(69,10) = "two"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "two"
│ │ └── @ SymbolNode (location: (69,11)-(69,16))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (69,11)-(69,16) = "three"
│ │ ├── closing_loc: ∅
@@ -854,16 +871,19 @@
│ ├── flags: ∅
│ ├── elements: (length: 3)
│ │ ├── @ SymbolNode (location: (76,3)-(76,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (76,3)-(76,6) = "one"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "one"
│ │ ├── @ SymbolNode (location: (76,7)-(76,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (76,7)-(76,10) = "two"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "two"
│ │ └── @ SymbolNode (location: (76,11)-(76,16))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (76,11)-(76,16) = "three"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/begin_ensure.txt b/test/prism/snapshots/begin_ensure.txt
index d2e764e007..82eb5c6fa3 100644
--- a/test/prism/snapshots/begin_ensure.txt
+++ b/test/prism/snapshots/begin_ensure.txt
@@ -157,6 +157,7 @@
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ SymbolNode (location: (15,11)-(15,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (15,11)-(15,12) = ":"
│ │ │ ├── value_loc: (15,12)-(15,13) = "s"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/case.txt b/test/prism/snapshots/case.txt
index f841fcb269..e8aef78b7a 100644
--- a/test/prism/snapshots/case.txt
+++ b/test/prism/snapshots/case.txt
@@ -6,6 +6,7 @@
├── @ CaseNode (location: (1,0)-(3,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (1,5)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,5)-(1,6) = ":"
│ │ ├── value_loc: (1,6)-(1,8) = "hi"
│ │ ├── closing_loc: ∅
@@ -15,6 +16,7 @@
│ │ ├── keyword_loc: (2,0)-(2,4) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ SymbolNode (location: (2,5)-(2,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,5)-(2,6) = ":"
│ │ │ ├── value_loc: (2,6)-(2,8) = "hi"
│ │ │ ├── closing_loc: ∅
@@ -46,6 +48,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (5,27)-(5,30))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (5,27)-(5,28) = ":"
│ │ │ │ ├── value_loc: (5,28)-(5,30) = "hi"
│ │ │ │ ├── closing_loc: ∅
@@ -71,6 +74,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ SymbolNode (location: (5,49)-(5,53))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (5,49)-(5,50) = ":"
│ │ │ ├── value_loc: (5,50)-(5,53) = "bye"
│ │ │ ├── closing_loc: ∅
@@ -106,6 +110,7 @@
├── @ CaseNode (location: (9,0)-(13,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (9,5)-(9,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (9,5)-(9,6) = ":"
│ │ ├── value_loc: (9,6)-(9,8) = "hi"
│ │ ├── closing_loc: ∅
@@ -115,6 +120,7 @@
│ │ ├── keyword_loc: (10,0)-(10,4) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ SymbolNode (location: (10,5)-(10,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (10,5)-(10,6) = ":"
│ │ │ ├── value_loc: (10,6)-(10,8) = "hi"
│ │ │ ├── closing_loc: ∅
@@ -127,6 +133,7 @@
│ │ │ @ StatementsNode (location: (12,0)-(12,2))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (12,0)-(12,2))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (12,0)-(12,1) = ":"
│ │ │ ├── value_loc: (12,1)-(12,2) = "b"
│ │ │ ├── closing_loc: ∅
@@ -242,6 +249,7 @@
│ │ ├── keyword_loc: (28,3)-(28,7) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ SymbolNode (location: (28,8)-(28,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (28,8)-(28,9) = ":"
│ │ │ ├── value_loc: (28,9)-(28,10) = "b"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/dos_endings.txt b/test/prism/snapshots/dos_endings.txt
index 4500bf7881..446ad3b3d9 100644
--- a/test/prism/snapshots/dos_endings.txt
+++ b/test/prism/snapshots/dos_endings.txt
@@ -36,6 +36,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (4,3)-(5,1))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (4,3)-(5,1) = "a\\\r\nb"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/global_variables.txt b/test/prism/snapshots/global_variables.txt
index cde964dd16..725de21126 100644
--- a/test/prism/snapshots/global_variables.txt
+++ b/test/prism/snapshots/global_variables.txt
@@ -52,116 +52,139 @@
├── @ GlobalVariableReadNode (location: (47,0)-(47,3))
│ └── name: :$-K
├── @ SymbolNode (location: (49,0)-(49,17))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── opening_loc: (51,0)-(51,1) = ":"
│ ├── value_loc: (51,1)-(51,3) = "$_"
│ ├── closing_loc: ∅
│ └── unescaped: "$_"
├── @ SymbolNode (location: (53,0)-(53,4))
+ │ ├── flags: ∅
│ ├── opening_loc: (53,0)-(53,1) = ":"
│ ├── value_loc: (53,1)-(53,4) = "$-w"
│ ├── closing_loc: ∅
│ └── unescaped: "$-w"
├── @ SymbolNode (location: (55,0)-(55,11))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── opening_loc: (57,0)-(57,1) = ":"
│ ├── value_loc: (57,1)-(57,7) = "$stdin"
│ ├── closing_loc: ∅
│ └── unescaped: "$stdin"
├── @ SymbolNode (location: (59,0)-(59,8))
+ │ ├── flags: ∅
│ ├── opening_loc: (59,0)-(59,1) = ":"
│ ├── value_loc: (59,1)-(59,8) = "$stdout"
│ ├── closing_loc: ∅
│ └── unescaped: "$stdout"
├── @ SymbolNode (location: (61,0)-(61,8))
+ │ ├── flags: ∅
│ ├── opening_loc: (61,0)-(61,1) = ":"
│ ├── value_loc: (61,1)-(61,8) = "$stderr"
│ ├── closing_loc: ∅
│ └── unescaped: "$stderr"
├── @ SymbolNode (location: (63,0)-(63,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (63,0)-(63,1) = ":"
│ ├── value_loc: (63,1)-(63,3) = "$!"
│ ├── closing_loc: ∅
│ └── unescaped: "$!"
├── @ SymbolNode (location: (65,0)-(65,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (65,0)-(65,1) = ":"
│ ├── value_loc: (65,1)-(65,3) = "$?"
│ ├── closing_loc: ∅
│ └── unescaped: "$?"
├── @ SymbolNode (location: (67,0)-(67,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (67,0)-(67,1) = ":"
│ ├── value_loc: (67,1)-(67,3) = "$~"
│ ├── closing_loc: ∅
│ └── unescaped: "$~"
├── @ SymbolNode (location: (69,0)-(69,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (69,0)-(69,1) = ":"
│ ├── value_loc: (69,1)-(69,3) = "$&"
│ ├── closing_loc: ∅
│ └── unescaped: "$&"
├── @ SymbolNode (location: (71,0)-(71,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (71,0)-(71,1) = ":"
│ ├── value_loc: (71,1)-(71,3) = "$`"
│ ├── closing_loc: ∅
│ └── unescaped: "$`"
├── @ SymbolNode (location: (73,0)-(73,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (73,0)-(73,1) = ":"
│ ├── value_loc: (73,1)-(73,3) = "$'"
│ ├── closing_loc: ∅
│ └── unescaped: "$'"
├── @ SymbolNode (location: (75,0)-(75,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (75,0)-(75,1) = ":"
│ ├── value_loc: (75,1)-(75,3) = "$+"
│ ├── closing_loc: ∅
│ └── unescaped: "$+"
├── @ SymbolNode (location: (77,0)-(77,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (77,0)-(77,1) = ":"
│ ├── value_loc: (77,1)-(77,3) = "$:"
│ ├── closing_loc: ∅
│ └── unescaped: "$:"
├── @ SymbolNode (location: (79,0)-(79,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (79,0)-(79,1) = ":"
│ ├── value_loc: (79,1)-(79,3) = "$;"
│ ├── closing_loc: ∅
│ └── unescaped: "$;"
├── @ SymbolNode (location: (81,0)-(81,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (81,0)-(81,1) = ":"
│ ├── value_loc: (81,1)-(81,7) = "$DEBUG"
│ ├── closing_loc: ∅
│ └── unescaped: "$DEBUG"
├── @ SymbolNode (location: (83,0)-(83,10))
+ │ ├── flags: ∅
│ ├── opening_loc: (83,0)-(83,1) = ":"
│ ├── value_loc: (83,1)-(83,10) = "$FILENAME"
│ ├── closing_loc: ∅
│ └── unescaped: "$FILENAME"
├── @ SymbolNode (location: (85,0)-(85,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (85,0)-(85,1) = ":"
│ ├── value_loc: (85,1)-(85,3) = "$0"
│ ├── closing_loc: ∅
│ └── unescaped: "$0"
├── @ SymbolNode (location: (87,0)-(87,4))
+ │ ├── flags: ∅
│ ├── opening_loc: (87,0)-(87,1) = ":"
│ ├── value_loc: (87,1)-(87,4) = "$-0"
│ ├── closing_loc: ∅
│ └── unescaped: "$-0"
├── @ SymbolNode (location: (89,0)-(89,17))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── opening_loc: (91,0)-(91,1) = ":"
│ ├── value_loc: (91,1)-(91,9) = "$VERBOSE"
│ ├── closing_loc: ∅
│ └── unescaped: "$VERBOSE"
└── @ SymbolNode (location: (93,0)-(93,4))
+ ├── flags: ∅
├── 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 c777e8932e..9f930694fe 100644
--- a/test/prism/snapshots/hashes.txt
+++ b/test/prism/snapshots/hashes.txt
@@ -110,6 +110,7 @@
│ │ ├── @ AssocNode (location: (11,6)-(11,10))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (11,6)-(11,8))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (11,6)-(11,7) = "a"
│ │ │ │ ├── closing_loc: (11,7)-(11,8) = ":"
@@ -129,6 +130,7 @@
│ │ └── @ AssocNode (location: (12,6)-(12,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (12,6)-(12,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (12,6)-(12,7) = "c"
│ │ │ ├── closing_loc: (12,7)-(12,8) = ":"
@@ -152,6 +154,7 @@
│ │ ├── @ AssocNode (location: (18,2)-(18,6))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (18,2)-(18,4))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (18,2)-(18,3) = "a"
│ │ │ │ ├── closing_loc: (18,3)-(18,4) = ":"
@@ -171,6 +174,7 @@
│ │ ├── @ AssocNode (location: (18,8)-(18,12))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (18,8)-(18,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (18,8)-(18,9) = "c"
│ │ │ │ ├── closing_loc: (18,9)-(18,10) = ":"
@@ -203,6 +207,7 @@
│ │ └── @ AssocNode (location: (18,19)-(18,23))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (18,19)-(18,21))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (18,19)-(18,20) = "f"
│ │ │ ├── closing_loc: (18,20)-(18,21) = ":"
@@ -226,6 +231,7 @@
│ │ └── @ AssocNode (location: (20,2)-(20,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (20,2)-(20,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (20,2)-(20,3) = "\""
│ │ │ ├── value_loc: (20,3)-(20,4) = "a"
│ │ │ ├── closing_loc: (20,4)-(20,6) = "\":"
@@ -292,6 +298,7 @@
│ │ ├── @ AssocNode (location: (25,4)-(25,6))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (25,4)-(25,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (25,4)-(25,5) = "a"
│ │ │ │ ├── closing_loc: (25,5)-(25,6) = ":"
@@ -306,6 +313,7 @@
│ │ ├── @ AssocNode (location: (25,8)-(25,10))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (25,8)-(25,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (25,8)-(25,9) = "b"
│ │ │ │ ├── closing_loc: (25,9)-(25,10) = ":"
@@ -320,6 +328,7 @@
│ │ ├── @ AssocNode (location: (25,12)-(25,14))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (25,12)-(25,14))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (25,12)-(25,13) = "c"
│ │ │ │ ├── closing_loc: (25,13)-(25,14) = ":"
@@ -341,6 +350,7 @@
│ │ └── @ AssocNode (location: (25,16)-(25,18))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (25,16)-(25,18))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (25,16)-(25,17) = "D"
│ │ │ ├── closing_loc: (25,17)-(25,18) = ":"
diff --git a/test/prism/snapshots/if.txt b/test/prism/snapshots/if.txt
index e6e92a67b4..965ca959ce 100644
--- a/test/prism/snapshots/if.txt
+++ b/test/prism/snapshots/if.txt
@@ -254,6 +254,7 @@
│ │ │ └── @ AssocNode (location: (25,4)-(25,6))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (25,4)-(25,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (25,4)-(25,5) = "b"
│ │ │ │ ├── closing_loc: (25,5)-(25,6) = ":"
diff --git a/test/prism/snapshots/method_calls.txt b/test/prism/snapshots/method_calls.txt
index ad84800ab3..1ab62ce8c4 100644
--- a/test/prism/snapshots/method_calls.txt
+++ b/test/prism/snapshots/method_calls.txt
@@ -705,11 +705,13 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 2)
│ │ │ ├── @ SymbolNode (location: (51,4)-(51,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (51,4)-(51,5) = ":"
│ │ │ │ ├── value_loc: (51,5)-(51,6) = "a"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "a"
│ │ │ └── @ SymbolNode (location: (51,8)-(51,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (51,8)-(51,9) = ":"
│ │ │ ├── value_loc: (51,9)-(51,10) = "b"
│ │ │ ├── closing_loc: ∅
@@ -730,11 +732,13 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (53,4)-(53,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (53,4)-(53,5) = ":"
│ │ │ ├── value_loc: (53,5)-(53,6) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (55,2)-(55,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (55,2)-(55,3) = ":"
│ │ ├── value_loc: (55,3)-(55,4) = "b"
│ │ ├── closing_loc: ∅
@@ -779,6 +783,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (60,4)-(60,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (60,4)-(60,5) = ":"
│ │ │ ├── value_loc: (60,5)-(60,6) = "a"
│ │ │ ├── closing_loc: ∅
@@ -788,6 +793,7 @@
│ │ ├── @ AssocNode (location: (60,8)-(60,22))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (60,8)-(60,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (60,8)-(60,9) = ":"
│ │ │ │ ├── value_loc: (60,9)-(60,10) = "h"
│ │ │ │ ├── closing_loc: ∅
@@ -797,11 +803,13 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── elements: (length: 2)
│ │ │ │ │ ├── @ SymbolNode (location: (60,15)-(60,17))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── opening_loc: (60,15)-(60,16) = ":"
│ │ │ │ │ │ ├── value_loc: (60,16)-(60,17) = "x"
│ │ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ │ └── unescaped: "x"
│ │ │ │ │ └── @ SymbolNode (location: (60,19)-(60,21))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (60,19)-(60,20) = ":"
│ │ │ │ │ ├── value_loc: (60,20)-(60,21) = "y"
│ │ │ │ │ ├── closing_loc: ∅
@@ -812,12 +820,14 @@
│ │ └── @ AssocNode (location: (60,24)-(60,32))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (60,24)-(60,26))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (60,30)-(60,31) = ":"
│ │ │ ├── value_loc: (60,31)-(60,32) = "b"
│ │ │ ├── closing_loc: ∅
@@ -828,6 +838,7 @@
│ @ BlockArgumentNode (location: (60,34)-(60,39))
│ ├── expression:
│ │ @ SymbolNode (location: (60,35)-(60,39))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (60,35)-(60,36) = ":"
│ │ ├── value_loc: (60,36)-(60,39) = "bar"
│ │ ├── closing_loc: ∅
@@ -852,12 +863,14 @@
│ │ │ ├── @ AssocNode (location: (62,10)-(62,27))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (62,10)-(62,16))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── 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: ∅
│ │ │ │ │ ├── opening_loc: (62,20)-(62,21) = ":"
│ │ │ │ │ ├── value_loc: (62,21)-(62,27) = "friend"
│ │ │ │ │ ├── closing_loc: ∅
@@ -873,12 +886,14 @@
│ │ │ └── @ AssocNode (location: (62,35)-(62,47))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (62,35)-(62,42))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── 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: ∅
│ │ │ │ ├── opening_loc: (62,43)-(62,44) = ":"
│ │ │ │ ├── value_loc: (62,44)-(62,47) = "dog"
│ │ │ │ ├── closing_loc: ∅
@@ -899,6 +914,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (64,4)-(64,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (64,4)-(64,5) = ":"
│ │ │ ├── value_loc: (64,5)-(64,6) = "a"
│ │ │ ├── closing_loc: ∅
@@ -908,6 +924,7 @@
│ │ └── @ AssocNode (location: (64,8)-(64,15))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (64,8)-(64,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (64,8)-(64,9) = "b"
│ │ │ ├── closing_loc: (64,9)-(64,10) = ":"
@@ -975,12 +992,14 @@
│ │ └── @ AssocNode (location: (66,3)-(66,17))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (66,3)-(66,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (66,10)-(66,11) = ":"
│ │ │ ├── value_loc: (66,11)-(66,17) = "friend"
│ │ │ ├── closing_loc: ∅
@@ -1004,12 +1023,14 @@
│ │ ├── @ AssocNode (location: (68,3)-(68,20))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (68,3)-(68,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── 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: ∅
│ │ │ │ ├── opening_loc: (68,13)-(68,14) = ":"
│ │ │ │ ├── value_loc: (68,14)-(68,20) = "friend"
│ │ │ │ ├── closing_loc: ∅
@@ -1025,12 +1046,14 @@
│ │ └── @ AssocNode (location: (68,28)-(68,40))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (68,28)-(68,35))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (68,36)-(68,37) = ":"
│ │ │ ├── value_loc: (68,37)-(68,40) = "dog"
│ │ │ ├── closing_loc: ∅
@@ -1054,12 +1077,14 @@
│ │ ├── @ AssocNode (location: (70,3)-(70,20))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (70,3)-(70,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── 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: ∅
│ │ │ │ ├── opening_loc: (70,13)-(70,14) = ":"
│ │ │ │ ├── value_loc: (70,14)-(70,20) = "friend"
│ │ │ │ ├── closing_loc: ∅
@@ -1075,12 +1100,14 @@
│ │ └── @ AssocNode (location: (70,28)-(70,40))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (70,28)-(70,35))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (70,36)-(70,37) = ":"
│ │ │ ├── value_loc: (70,37)-(70,40) = "dog"
│ │ │ ├── closing_loc: ∅
@@ -1105,6 +1132,7 @@
│ │ │ ├── @ AssocNode (location: (72,6)-(72,13))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (72,6)-(72,8))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (72,6)-(72,7) = "a"
│ │ │ │ │ ├── closing_loc: (72,7)-(72,8) = ":"
@@ -1115,6 +1143,7 @@
│ │ │ └── @ AssocNode (location: (72,15)-(72,23))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (72,15)-(72,17))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (72,15)-(72,16) = "b"
│ │ │ │ ├── closing_loc: (72,16)-(72,17) = ":"
@@ -1128,6 +1157,7 @@
│ @ BlockArgumentNode (location: (72,28)-(72,35))
│ ├── expression:
│ │ @ SymbolNode (location: (72,29)-(72,35))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (72,29)-(72,30) = ":"
│ │ ├── value_loc: (72,30)-(72,35) = "block"
│ │ ├── closing_loc: ∅
@@ -1149,12 +1179,14 @@
│ │ └── @ AssocNode (location: (74,3)-(74,20))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (74,3)-(74,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (74,13)-(74,14) = ":"
│ │ │ ├── value_loc: (74,14)-(74,20) = "friend"
│ │ │ ├── closing_loc: ∅
@@ -1174,11 +1206,13 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (76,4)-(76,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (76,4)-(76,5) = ":"
│ │ │ ├── value_loc: (76,5)-(76,6) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (77,0)-(77,2))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (77,0)-(77,1) = ":"
│ │ ├── value_loc: (77,1)-(77,2) = "b"
│ │ ├── closing_loc: ∅
@@ -1197,6 +1231,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (81,0)-(81,2))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (81,0)-(81,1) = ":"
│ │ │ ├── value_loc: (81,1)-(81,2) = "a"
│ │ │ ├── closing_loc: ∅
@@ -1206,12 +1241,14 @@
│ │ └── @ AssocNode (location: (82,0)-(82,5))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (82,0)-(82,2))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (82,3)-(82,4) = ":"
│ │ │ ├── value_loc: (82,4)-(82,5) = "c"
│ │ │ ├── closing_loc: ∅
@@ -1232,6 +1269,7 @@
│ @ BlockArgumentNode (location: (85,4)-(85,11))
│ ├── expression:
│ │ @ SymbolNode (location: (85,5)-(85,11))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (85,5)-(85,6) = ":"
│ │ ├── value_loc: (85,6)-(85,11) = "block"
│ │ ├── closing_loc: ∅
@@ -1253,6 +1291,7 @@
│ │ ├── @ AssocNode (location: (87,4)-(87,11))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (87,4)-(87,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (87,4)-(87,5) = "a"
│ │ │ │ ├── closing_loc: (87,5)-(87,6) = ":"
@@ -1263,6 +1302,7 @@
│ │ └── @ AssocNode (location: (87,13)-(87,21))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (87,13)-(87,15))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (87,13)-(87,14) = "b"
│ │ │ ├── closing_loc: (87,14)-(87,15) = ":"
@@ -1275,6 +1315,7 @@
│ @ BlockArgumentNode (location: (87,23)-(87,30))
│ ├── expression:
│ │ @ SymbolNode (location: (87,24)-(87,30))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (87,24)-(87,25) = ":"
│ │ ├── value_loc: (87,25)-(87,30) = "block"
│ │ ├── closing_loc: ∅
@@ -1298,6 +1339,7 @@
│ │ └── @ AssocNode (location: (89,13)-(89,21))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (89,13)-(89,19))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (89,13)-(89,18) = "kwarg"
│ │ │ ├── closing_loc: (89,18)-(89,19) = ":"
@@ -1403,6 +1445,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (97,8)-(97,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (97,8)-(97,9) = ":"
│ │ ├── value_loc: (97,9)-(97,12) = "foo"
│ │ ├── closing_loc: ∅
@@ -1429,6 +1472,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (99,8)-(99,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (99,8)-(99,9) = ":"
│ │ ├── value_loc: (99,9)-(99,12) = "foo"
│ │ ├── closing_loc: ∅
@@ -1455,6 +1499,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (101,8)-(101,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (101,8)-(101,9) = ":"
│ │ ├── value_loc: (101,9)-(101,12) = "foo"
│ │ ├── closing_loc: ∅
@@ -1484,6 +1529,7 @@
│ │ └── @ AssocNode (location: (103,4)-(103,11))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (103,4)-(103,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (103,4)-(103,5) = "\""
│ │ │ ├── value_loc: (103,5)-(103,6) = "a"
│ │ │ ├── closing_loc: (103,6)-(103,8) = "\":"
@@ -1510,6 +1556,7 @@
│ │ └── @ AssocNode (location: (105,4)-(105,28))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (105,4)-(105,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (105,4)-(105,7) = "bar"
│ │ │ ├── closing_loc: (105,7)-(105,8) = ":"
@@ -1521,6 +1568,7 @@
│ │ │ │ └── @ AssocNode (location: (105,11)-(105,26))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (105,11)-(105,15))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (105,11)-(105,14) = "baz"
│ │ │ │ │ ├── closing_loc: (105,14)-(105,15) = ":"
@@ -1564,6 +1612,7 @@
│ │ └── @ AssocNode (location: (107,4)-(107,24))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (107,4)-(107,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (107,4)-(107,7) = "bar"
│ │ │ ├── closing_loc: (107,7)-(107,8) = ":"
@@ -1837,6 +1886,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (119,4)-(119,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (119,4)-(119,5) = ":"
│ │ │ ├── value_loc: (119,5)-(119,6) = "a"
│ │ │ ├── closing_loc: ∅
@@ -1911,6 +1961,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 3)
│ │ ├── @ SymbolNode (location: (126,4)-(126,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (126,4)-(126,5) = ":"
│ │ │ ├── value_loc: (126,5)-(126,6) = "a"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/methods.txt b/test/prism/snapshots/methods.txt
index 4d36cae2ac..ae7adecf22 100644
--- a/test/prism/snapshots/methods.txt
+++ b/test/prism/snapshots/methods.txt
@@ -815,6 +815,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (99,7)-(99,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (99,7)-(99,8) = ":"
│ │ │ │ ├── value_loc: (99,8)-(99,10) = "hi"
│ │ │ │ ├── closing_loc: ∅
@@ -822,6 +823,7 @@
│ │ │ ├── consequent: ∅
│ │ │ └── end_keyword_loc: ∅
│ │ └── @ SymbolNode (location: (100,0)-(100,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (100,0)-(100,1) = ":"
│ │ ├── value_loc: (100,1)-(100,4) = "bye"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/patterns.txt b/test/prism/snapshots/patterns.txt
index 14c0c958f1..d8040bb084 100644
--- a/test/prism/snapshots/patterns.txt
+++ b/test/prism/snapshots/patterns.txt
@@ -101,6 +101,7 @@
│ │ └── block: ∅
│ ├── pattern:
│ │ @ SymbolNode (location: (6,7)-(6,11))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (6,7)-(6,8) = ":"
│ │ ├── value_loc: (6,8)-(6,11) = "foo"
│ │ ├── closing_loc: ∅
@@ -120,6 +121,7 @@
│ │ └── block: ∅
│ ├── pattern:
│ │ @ SymbolNode (location: (7,7)-(7,14))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (7,7)-(7,10) = "%s["
│ │ ├── value_loc: (7,10)-(7,13) = "foo"
│ │ ├── closing_loc: (7,13)-(7,14) = "]"
@@ -139,6 +141,7 @@
│ │ └── block: ∅
│ ├── pattern:
│ │ @ SymbolNode (location: (8,7)-(8,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (8,7)-(8,9) = ":\""
│ │ ├── value_loc: (8,9)-(8,12) = "foo"
│ │ ├── closing_loc: (8,12)-(8,13) = "\""
@@ -221,6 +224,7 @@
│ │ ├── flags: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ SymbolNode (location: (12,10)-(12,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (12,10)-(12,13) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -245,6 +249,7 @@
│ │ ├── flags: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ SymbolNode (location: (13,10)-(13,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (13,10)-(13,13) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -610,12 +615,14 @@
│ │ ├── flags: ∅
│ │ ├── left:
│ │ │ @ SymbolNode (location: (32,7)-(32,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (32,15)-(32,16) = ":"
│ │ │ ├── value_loc: (32,16)-(32,19) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -639,12 +646,14 @@
│ │ ├── flags: ∅
│ │ ├── left:
│ │ │ @ SymbolNode (location: (33,7)-(33,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (33,18)-(33,21) = "%s["
│ │ │ ├── value_loc: (33,21)-(33,24) = "foo"
│ │ │ ├── closing_loc: (33,24)-(33,25) = "]"
@@ -668,12 +677,14 @@
│ │ ├── flags: ∅
│ │ ├── left:
│ │ │ @ SymbolNode (location: (34,7)-(34,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (34,17)-(34,19) = ":\""
│ │ │ ├── value_loc: (34,19)-(34,22) = "foo"
│ │ │ ├── closing_loc: (34,22)-(34,23) = "\""
@@ -793,6 +804,7 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (38,10)-(38,13))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (38,10)-(38,13) = "foo"
│ │ │ │ ├── closing_loc: ∅
@@ -804,6 +816,7 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (38,21)-(38,24))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (38,21)-(38,24) = "foo"
│ │ │ │ ├── closing_loc: ∅
@@ -832,6 +845,7 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (39,10)-(39,13))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (39,10)-(39,13) = "foo"
│ │ │ │ ├── closing_loc: ∅
@@ -843,6 +857,7 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (39,21)-(39,24))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (39,21)-(39,24) = "foo"
│ │ │ │ ├── closing_loc: ∅
@@ -2412,6 +2427,7 @@
│ │ └── block: ∅
│ ├── pattern:
│ │ @ SymbolNode (location: (105,7)-(105,11))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (105,7)-(105,8) = ":"
│ │ ├── value_loc: (105,8)-(105,11) = "foo"
│ │ ├── closing_loc: ∅
@@ -2431,6 +2447,7 @@
│ │ └── block: ∅
│ ├── pattern:
│ │ @ SymbolNode (location: (106,7)-(106,14))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (106,7)-(106,10) = "%s["
│ │ ├── value_loc: (106,10)-(106,13) = "foo"
│ │ ├── closing_loc: (106,13)-(106,14) = "]"
@@ -2450,6 +2467,7 @@
│ │ └── block: ∅
│ ├── pattern:
│ │ @ SymbolNode (location: (107,7)-(107,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (107,7)-(107,9) = ":\""
│ │ ├── value_loc: (107,9)-(107,12) = "foo"
│ │ ├── closing_loc: (107,12)-(107,13) = "\""
@@ -2532,6 +2550,7 @@
│ │ ├── flags: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ SymbolNode (location: (111,10)-(111,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (111,10)-(111,13) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -2556,6 +2575,7 @@
│ │ ├── flags: ∅
│ │ ├── elements: (length: 1)
│ │ │ └── @ SymbolNode (location: (112,10)-(112,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (112,10)-(112,13) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -2941,6 +2961,7 @@
│ │ └── @ InNode (location: (132,10)-(132,22))
│ │ ├── pattern:
│ │ │ @ SymbolNode (location: (132,13)-(132,17))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (132,13)-(132,14) = ":"
│ │ │ ├── value_loc: (132,14)-(132,17) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -2967,6 +2988,7 @@
│ │ └── @ InNode (location: (133,10)-(133,25))
│ │ ├── pattern:
│ │ │ @ SymbolNode (location: (133,13)-(133,20))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (133,13)-(133,16) = "%s["
│ │ │ ├── value_loc: (133,16)-(133,19) = "foo"
│ │ │ ├── closing_loc: (133,19)-(133,20) = "]"
@@ -2993,6 +3015,7 @@
│ │ └── @ InNode (location: (134,10)-(134,24))
│ │ ├── pattern:
│ │ │ @ SymbolNode (location: (134,13)-(134,19))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (134,13)-(134,15) = ":\""
│ │ │ ├── value_loc: (134,15)-(134,18) = "foo"
│ │ │ ├── closing_loc: (134,18)-(134,19) = "\""
@@ -3103,6 +3126,7 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (138,16)-(138,19))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (138,16)-(138,19) = "foo"
│ │ │ │ ├── closing_loc: ∅
@@ -3134,6 +3158,7 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (139,16)-(139,19))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (139,16)-(139,19) = "foo"
│ │ │ │ ├── closing_loc: ∅
@@ -3685,6 +3710,7 @@
│ │ │ │ @ StatementsNode (location: (159,13)-(159,17))
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (159,13)-(159,17))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (159,13)-(159,14) = ":"
│ │ │ │ ├── value_loc: (159,14)-(159,17) = "foo"
│ │ │ │ ├── closing_loc: ∅
@@ -3723,6 +3749,7 @@
│ │ │ │ @ StatementsNode (location: (160,13)-(160,20))
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (160,13)-(160,20))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (160,13)-(160,16) = "%s["
│ │ │ │ ├── value_loc: (160,16)-(160,19) = "foo"
│ │ │ │ ├── closing_loc: (160,19)-(160,20) = "]"
@@ -3761,6 +3788,7 @@
│ │ │ │ @ StatementsNode (location: (161,13)-(161,19))
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (161,13)-(161,19))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (161,13)-(161,15) = ":\""
│ │ │ │ ├── value_loc: (161,15)-(161,18) = "foo"
│ │ │ │ ├── closing_loc: (161,18)-(161,19) = "\""
@@ -3919,6 +3947,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── elements: (length: 1)
│ │ │ │ │ └── @ SymbolNode (location: (165,16)-(165,19))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (165,16)-(165,19) = "foo"
│ │ │ │ │ ├── closing_loc: ∅
@@ -3962,6 +3991,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── elements: (length: 1)
│ │ │ │ │ └── @ SymbolNode (location: (166,16)-(166,19))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (166,16)-(166,19) = "foo"
│ │ │ │ │ ├── closing_loc: ∅
@@ -4539,6 +4569,7 @@
│ │ │ └── @ AssocNode (location: (189,2)-(191,3))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (189,2)-(189,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (189,2)-(189,5) = "bar"
│ │ │ │ ├── closing_loc: (189,5)-(189,6) = ":"
@@ -4552,6 +4583,7 @@
│ │ │ │ │ └── @ AssocNode (location: (190,4)-(190,12))
│ │ │ │ │ ├── key:
│ │ │ │ │ │ @ SymbolNode (location: (190,4)-(190,10))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ ├── value_loc: (190,4)-(190,9) = "value"
│ │ │ │ │ │ ├── closing_loc: (190,9)-(190,10) = ":"
diff --git a/test/prism/snapshots/ranges.txt b/test/prism/snapshots/ranges.txt
index 009738ad64..471efc49a7 100644
--- a/test/prism/snapshots/ranges.txt
+++ b/test/prism/snapshots/ranges.txt
@@ -74,6 +74,7 @@
│ │ └── @ AssocNode (location: (9,2)-(9,13))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (9,2)-(9,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (9,2)-(9,5) = "foo"
│ │ │ ├── closing_loc: (9,5)-(9,6) = ":"
@@ -124,6 +125,7 @@
│ │ └── @ AssocNode (location: (15,2)-(15,12))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (15,2)-(15,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (15,2)-(15,5) = "foo"
│ │ │ ├── closing_loc: (15,5)-(15,6) = ":"
diff --git a/test/prism/snapshots/rescue.txt b/test/prism/snapshots/rescue.txt
index d8dc8d217f..ca47adce68 100644
--- a/test/prism/snapshots/rescue.txt
+++ b/test/prism/snapshots/rescue.txt
@@ -347,6 +347,7 @@
│ │ │ └── @ AssocNode (location: (29,4)-(29,6))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (29,4)-(29,6))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (29,4)-(29,5) = "b"
│ │ │ │ ├── closing_loc: (29,5)-(29,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/TestRubyParserShared.txt b/test/prism/snapshots/seattlerb/TestRubyParserShared.txt
index 5b8731c191..20da816e25 100644
--- a/test/prism/snapshots/seattlerb/TestRubyParserShared.txt
+++ b/test/prism/snapshots/seattlerb/TestRubyParserShared.txt
@@ -12,11 +12,13 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (7,0)-(7,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (7,0)-(7,5) = "line2"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "line2"
│ │ └── @ SymbolNode (location: (8,0)-(8,5))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (8,0)-(8,5) = "line3"
│ │ ├── closing_loc: ∅
@@ -54,11 +56,13 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (27,0)-(27,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (27,0)-(27,5) = "line2"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "line2"
│ │ └── @ SymbolNode (location: (28,0)-(28,5))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (28,0)-(28,5) = "line3"
│ │ ├── closing_loc: ∅
@@ -97,11 +101,13 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (47,0)-(47,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (47,0)-(47,1) = ":"
│ │ │ ├── value_loc: (47,1)-(47,6) = "line2"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "line2"
│ │ └── @ SymbolNode (location: (48,0)-(48,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (48,0)-(48,1) = ":"
│ │ ├── value_loc: (48,1)-(48,6) = "line3"
│ │ ├── closing_loc: ∅
@@ -279,11 +285,13 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 2)
│ │ │ │ ├── @ SymbolNode (location: (76,4)-(76,10))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (76,4)-(76,5) = ":"
│ │ │ │ │ ├── value_loc: (76,5)-(76,10) = "line3"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "line3"
│ │ │ │ └── @ SymbolNode (location: (77,4)-(77,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (77,4)-(77,5) = ":"
│ │ │ │ ├── value_loc: (77,5)-(77,10) = "line4"
│ │ │ │ ├── closing_loc: ∅
@@ -334,11 +342,13 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ SymbolNode (location: (90,0)-(90,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (90,0)-(90,1) = ":"
│ │ ├── value_loc: (90,1)-(90,6) = "line2"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "line2"
│ └── @ SymbolNode (location: (91,0)-(91,6))
+ │ ├── flags: ∅
│ ├── opening_loc: (91,0)-(91,1) = ":"
│ ├── value_loc: (91,1)-(91,6) = "line3"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/alias_resword.txt b/test/prism/snapshots/seattlerb/alias_resword.txt
index 089819b528..bf475a5c71 100644
--- a/test/prism/snapshots/seattlerb/alias_resword.txt
+++ b/test/prism/snapshots/seattlerb/alias_resword.txt
@@ -6,12 +6,14 @@
└── @ AliasMethodNode (location: (1,0)-(1,12))
├── new_name:
│ @ SymbolNode (location: (1,6)-(1,8))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── value_loc: (1,6)-(1,8) = "in"
│ ├── closing_loc: ∅
│ └── unescaped: "in"
├── old_name:
│ @ SymbolNode (location: (1,9)-(1,12))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── value_loc: (1,9)-(1,12) = "out"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/assoc__bare.txt b/test/prism/snapshots/seattlerb/assoc__bare.txt
index a6c77ca3bf..8707c29593 100644
--- a/test/prism/snapshots/seattlerb/assoc__bare.txt
+++ b/test/prism/snapshots/seattlerb/assoc__bare.txt
@@ -9,6 +9,7 @@
│ └── @ AssocNode (location: (1,2)-(1,4))
│ ├── key:
│ │ @ SymbolNode (location: (1,2)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,2)-(1,3) = "y"
│ │ ├── closing_loc: (1,3)-(1,4) = ":"
diff --git a/test/prism/snapshots/seattlerb/assoc_label.txt b/test/prism/snapshots/seattlerb/assoc_label.txt
index 116635beb4..17b695cf4b 100644
--- a/test/prism/snapshots/seattlerb/assoc_label.txt
+++ b/test/prism/snapshots/seattlerb/assoc_label.txt
@@ -19,6 +19,7 @@
│ └── @ AssocNode (location: (1,2)-(1,5))
│ ├── key:
│ │ @ SymbolNode (location: (1,2)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,2)-(1,3) = "b"
│ │ ├── closing_loc: (1,3)-(1,4) = ":"
diff --git a/test/prism/snapshots/seattlerb/block_command_operation_colon.txt b/test/prism/snapshots/seattlerb/block_command_operation_colon.txt
index 8f4439223f..d4d3f88220 100644
--- a/test/prism/snapshots/seattlerb/block_command_operation_colon.txt
+++ b/test/prism/snapshots/seattlerb/block_command_operation_colon.txt
@@ -18,6 +18,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (1,2)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,2)-(1,3) = ":"
│ │ ├── value_loc: (1,3)-(1,4) = "b"
│ │ ├── closing_loc: ∅
@@ -40,6 +41,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ SymbolNode (location: (1,15)-(1,17))
+ │ ├── flags: ∅
│ ├── 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 ce44f8b75c..2fc6674e4c 100644
--- a/test/prism/snapshots/seattlerb/block_command_operation_dot.txt
+++ b/test/prism/snapshots/seattlerb/block_command_operation_dot.txt
@@ -18,6 +18,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (1,2)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,2)-(1,3) = ":"
│ │ ├── value_loc: (1,3)-(1,4) = "b"
│ │ ├── closing_loc: ∅
@@ -40,6 +41,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ SymbolNode (location: (1,14)-(1,16))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,14)-(1,15) = ":"
│ ├── value_loc: (1,15)-(1,16) = "d"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/block_kwarg_lvar.txt b/test/prism/snapshots/seattlerb/block_kwarg_lvar.txt
index 7469bdc5db..6eee362895 100644
--- a/test/prism/snapshots/seattlerb/block_kwarg_lvar.txt
+++ b/test/prism/snapshots/seattlerb/block_kwarg_lvar.txt
@@ -30,6 +30,7 @@
│ │ │ ├── name_loc: (1,6)-(1,9) = "kw:"
│ │ │ └── value:
│ │ │ @ SymbolNode (location: (1,10)-(1,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,10)-(1,11) = ":"
│ │ │ ├── value_loc: (1,11)-(1,14) = "val"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt b/test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt
index 23e807ba79..3d6ed902f1 100644
--- a/test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt
+++ b/test/prism/snapshots/seattlerb/block_kwarg_lvar_multiple.txt
@@ -30,6 +30,7 @@
│ │ │ │ ├── name_loc: (1,6)-(1,9) = "kw:"
│ │ │ │ └── value:
│ │ │ │ @ SymbolNode (location: (1,10)-(1,14))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (1,10)-(1,11) = ":"
│ │ │ │ ├── value_loc: (1,11)-(1,14) = "val"
│ │ │ │ ├── closing_loc: ∅
@@ -39,6 +40,7 @@
│ │ │ ├── name_loc: (1,16)-(1,20) = "kw2:"
│ │ │ └── value:
│ │ │ @ SymbolNode (location: (1,21)-(1,26))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,21)-(1,22) = ":"
│ │ │ ├── value_loc: (1,22)-(1,26) = "val2"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/block_optarg.txt b/test/prism/snapshots/seattlerb/block_optarg.txt
index 52f8731a7b..052299e44b 100644
--- a/test/prism/snapshots/seattlerb/block_optarg.txt
+++ b/test/prism/snapshots/seattlerb/block_optarg.txt
@@ -28,6 +28,7 @@
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ SymbolNode (location: (1,9)-(1,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,9)-(1,10) = ":"
│ │ │ ├── value_loc: (1,10)-(1,11) = "c"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/block_reg_optarg.txt b/test/prism/snapshots/seattlerb/block_reg_optarg.txt
index 389e560964..cad3954495 100644
--- a/test/prism/snapshots/seattlerb/block_reg_optarg.txt
+++ b/test/prism/snapshots/seattlerb/block_reg_optarg.txt
@@ -30,6 +30,7 @@
│ │ │ ├── operator_loc: (1,10)-(1,11) = "="
│ │ │ └── value:
│ │ │ @ SymbolNode (location: (1,12)-(1,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,12)-(1,13) = ":"
│ │ │ ├── value_loc: (1,13)-(1,14) = "d"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/bug_215.txt b/test/prism/snapshots/seattlerb/bug_215.txt
index 0ce43b58de..443b9b7358 100644
--- a/test/prism/snapshots/seattlerb/bug_215.txt
+++ b/test/prism/snapshots/seattlerb/bug_215.txt
@@ -6,6 +6,7 @@
└── @ UndefNode (location: (1,0)-(1,13))
├── names: (length: 1)
│ └── @ SymbolNode (location: (1,6)-(1,13))
+ │ ├── flags: ∅
│ ├── 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 cff5210a30..90ffa88f27 100644
--- a/test/prism/snapshots/seattlerb/bug_249.txt
+++ b/test/prism/snapshots/seattlerb/bug_249.txt
@@ -70,6 +70,7 @@
│ └── @ AssocNode (location: (4,11)-(4,28))
│ ├── key:
│ │ @ SymbolNode (location: (4,11)-(4,14))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (4,11)-(4,12) = ":"
│ │ ├── value_loc: (4,12)-(4,14) = "at"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/bug_case_when_regexp.txt b/test/prism/snapshots/seattlerb/bug_case_when_regexp.txt
index 6d3b11b9af..6479334c8e 100644
--- a/test/prism/snapshots/seattlerb/bug_case_when_regexp.txt
+++ b/test/prism/snapshots/seattlerb/bug_case_when_regexp.txt
@@ -6,6 +6,7 @@
└── @ CaseNode (location: (1,0)-(1,26))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "x"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/bug_hash_args.txt b/test/prism/snapshots/seattlerb/bug_hash_args.txt
index 96d0adde24..c9491071ab 100644
--- a/test/prism/snapshots/seattlerb/bug_hash_args.txt
+++ b/test/prism/snapshots/seattlerb/bug_hash_args.txt
@@ -15,6 +15,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ SymbolNode (location: (1,4)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,4)-(1,5) = ":"
│ │ ├── value_loc: (1,5)-(1,8) = "bar"
│ │ ├── closing_loc: ∅
@@ -24,6 +25,7 @@
│ └── @ AssocNode (location: (1,10)-(1,18))
│ ├── key:
│ │ @ SymbolNode (location: (1,10)-(1,14))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,10)-(1,13) = "baz"
│ │ ├── closing_loc: (1,13)-(1,14) = ":"
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 b1404826ec..04f4173fc1 100644
--- a/test/prism/snapshots/seattlerb/bug_hash_args_trailing_comma.txt
+++ b/test/prism/snapshots/seattlerb/bug_hash_args_trailing_comma.txt
@@ -15,6 +15,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ SymbolNode (location: (1,4)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,4)-(1,5) = ":"
│ │ ├── value_loc: (1,5)-(1,8) = "bar"
│ │ ├── closing_loc: ∅
@@ -24,6 +25,7 @@
│ └── @ AssocNode (location: (1,10)-(1,18))
│ ├── key:
│ │ @ SymbolNode (location: (1,10)-(1,14))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,10)-(1,13) = "baz"
│ │ ├── closing_loc: (1,13)-(1,14) = ":"
diff --git a/test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt b/test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt
index 12a9bbfe38..6952d26fd5 100644
--- a/test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt
+++ b/test/prism/snapshots/seattlerb/call_arg_assoc_kwsplat.txt
@@ -21,6 +21,7 @@
│ ├── @ AssocNode (location: (1,5)-(1,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,5)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,5)-(1,7) = "kw"
│ │ │ ├── closing_loc: (1,7)-(1,8) = ":"
diff --git a/test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt b/test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt
index d20e11bf6b..f47f517553 100644
--- a/test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt
+++ b/test/prism/snapshots/seattlerb/call_args_assoc_quoted.txt
@@ -60,6 +60,7 @@
│ │ └── @ AssocNode (location: (3,2)-(3,8))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (3,2)-(3,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,2)-(3,3) = "\""
│ │ │ ├── value_loc: (3,3)-(3,4) = "k"
│ │ │ ├── closing_loc: (3,4)-(3,6) = "\":"
@@ -86,6 +87,7 @@
│ └── @ AssocNode (location: (5,2)-(5,8))
│ ├── key:
│ │ @ SymbolNode (location: (5,2)-(5,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (5,2)-(5,3) = "'"
│ │ ├── value_loc: (5,3)-(5,4) = "k"
│ │ ├── closing_loc: (5,4)-(5,6) = "':"
diff --git a/test/prism/snapshots/seattlerb/call_array_arg.txt b/test/prism/snapshots/seattlerb/call_array_arg.txt
index d0ccd3d7b0..1bca15afca 100644
--- a/test/prism/snapshots/seattlerb/call_array_arg.txt
+++ b/test/prism/snapshots/seattlerb/call_array_arg.txt
@@ -20,11 +20,13 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (1,6)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,6)-(1,7) = ":"
│ │ │ ├── value_loc: (1,7)-(1,8) = "b"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b"
│ │ └── @ SymbolNode (location: (1,10)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,10)-(1,11) = ":"
│ │ ├── value_loc: (1,11)-(1,12) = "c"
│ │ ├── closing_loc: ∅
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 f13625e87f..5099caf038 100644
--- a/test/prism/snapshots/seattlerb/call_array_lit_inline_hash.txt
+++ b/test/prism/snapshots/seattlerb/call_array_lit_inline_hash.txt
@@ -18,6 +18,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (1,3)-(1,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,3)-(1,4) = ":"
│ │ │ ├── value_loc: (1,4)-(1,5) = "b"
│ │ │ ├── closing_loc: ∅
@@ -27,6 +28,7 @@
│ │ └── @ AssocNode (location: (1,7)-(1,14))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,7)-(1,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,7)-(1,8) = ":"
│ │ │ ├── value_loc: (1,8)-(1,9) = "c"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/call_assoc_new.txt b/test/prism/snapshots/seattlerb/call_assoc_new.txt
index 984aecf9b7..5488fb2c46 100644
--- a/test/prism/snapshots/seattlerb/call_assoc_new.txt
+++ b/test/prism/snapshots/seattlerb/call_assoc_new.txt
@@ -19,6 +19,7 @@
│ └── @ AssocNode (location: (1,2)-(1,5))
│ ├── key:
│ │ @ SymbolNode (location: (1,2)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,2)-(1,3) = "a"
│ │ ├── closing_loc: (1,3)-(1,4) = ":"
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 49d1ad17e4..24477a761e 100644
--- a/test/prism/snapshots/seattlerb/call_assoc_new_if_multiline.txt
+++ b/test/prism/snapshots/seattlerb/call_assoc_new_if_multiline.txt
@@ -19,6 +19,7 @@
│ └── @ AssocNode (location: (1,2)-(5,3))
│ ├── key:
│ │ @ SymbolNode (location: (1,2)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,2)-(1,3) = "b"
│ │ ├── closing_loc: (1,3)-(1,4) = ":"
@@ -28,6 +29,7 @@
│ │ ├── if_keyword_loc: (1,5)-(1,7) = "if"
│ │ ├── predicate:
│ │ │ @ SymbolNode (location: (1,8)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,8)-(1,9) = ":"
│ │ │ ├── value_loc: (1,9)-(1,10) = "c"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/case_in.txt b/test/prism/snapshots/seattlerb/case_in.txt
index 0795f20792..53bc2bc367 100644
--- a/test/prism/snapshots/seattlerb/case_in.txt
+++ b/test/prism/snapshots/seattlerb/case_in.txt
@@ -6,6 +6,7 @@
├── @ CaseMatchNode (location: (1,0)-(3,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (1,5)-(1,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,5)-(1,6) = ":"
│ │ ├── value_loc: (1,6)-(1,7) = "a"
│ │ ├── closing_loc: ∅
@@ -19,6 +20,7 @@
│ │ │ │ └── @ AssocNode (location: (2,4)-(2,8))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (2,4)-(2,8))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (2,4)-(2,5) = "\""
│ │ │ │ │ ├── value_loc: (2,5)-(2,6) = "b"
│ │ │ │ │ ├── closing_loc: (2,6)-(2,8) = "\":"
@@ -37,6 +39,7 @@
├── @ CaseMatchNode (location: (5,0)-(7,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (5,5)-(5,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (5,5)-(5,6) = ":"
│ │ ├── value_loc: (5,6)-(5,7) = "a"
│ │ ├── closing_loc: ∅
@@ -48,11 +51,13 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 2)
│ │ │ │ ├── @ SymbolNode (location: (6,6)-(6,7))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (6,6)-(6,7) = "a"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "a"
│ │ │ │ └── @ SymbolNode (location: (6,8)-(6,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (6,8)-(6,9) = "b"
│ │ │ │ ├── closing_loc: ∅
@@ -68,6 +73,7 @@
├── @ CaseMatchNode (location: (9,0)-(11,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (9,5)-(9,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (9,5)-(9,6) = ":"
│ │ ├── value_loc: (9,6)-(9,7) = "a"
│ │ ├── closing_loc: ∅
@@ -101,6 +107,7 @@
├── @ CaseMatchNode (location: (13,0)-(15,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (13,5)-(13,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (13,5)-(13,6) = ":"
│ │ ├── value_loc: (13,6)-(13,7) = "a"
│ │ ├── closing_loc: ∅
@@ -112,11 +119,13 @@
│ │ │ ├── flags: ∅
│ │ │ ├── elements: (length: 2)
│ │ │ │ ├── @ SymbolNode (location: (14,6)-(14,7))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (14,6)-(14,7) = "a"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "a"
│ │ │ │ └── @ SymbolNode (location: (14,8)-(14,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (14,8)-(14,9) = "b"
│ │ │ │ ├── closing_loc: ∅
@@ -132,6 +141,7 @@
├── @ CaseMatchNode (location: (17,0)-(19,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (17,5)-(17,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (17,5)-(17,6) = ":"
│ │ ├── value_loc: (17,6)-(17,7) = "a"
│ │ ├── closing_loc: ∅
@@ -165,6 +175,7 @@
├── @ CaseMatchNode (location: (21,0)-(23,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (21,5)-(21,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (21,5)-(21,6) = ":"
│ │ ├── value_loc: (21,6)-(21,7) = "a"
│ │ ├── closing_loc: ∅
@@ -188,6 +199,7 @@
├── @ CaseMatchNode (location: (25,0)-(27,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (25,5)-(25,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (25,5)-(25,6) = ":"
│ │ ├── value_loc: (25,6)-(25,7) = "a"
│ │ ├── closing_loc: ∅
@@ -211,6 +223,7 @@
├── @ CaseMatchNode (location: (29,0)-(31,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (29,5)-(29,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (29,5)-(29,6) = ":"
│ │ ├── value_loc: (29,6)-(29,7) = "a"
│ │ ├── closing_loc: ∅
@@ -234,6 +247,7 @@
├── @ CaseMatchNode (location: (33,0)-(35,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (33,5)-(33,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (33,5)-(33,6) = ":"
│ │ ├── value_loc: (33,6)-(33,7) = "a"
│ │ ├── closing_loc: ∅
@@ -259,6 +273,7 @@
├── @ CaseMatchNode (location: (37,0)-(39,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (37,5)-(37,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (37,5)-(37,6) = ":"
│ │ ├── value_loc: (37,6)-(37,7) = "a"
│ │ ├── closing_loc: ∅
@@ -277,6 +292,7 @@
├── @ CaseMatchNode (location: (41,0)-(43,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (41,5)-(41,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (41,5)-(41,6) = ":"
│ │ ├── value_loc: (41,6)-(41,7) = "a"
│ │ ├── closing_loc: ∅
@@ -302,6 +318,7 @@
├── @ CaseMatchNode (location: (45,0)-(47,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (45,5)-(45,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (45,5)-(45,6) = ":"
│ │ ├── value_loc: (45,6)-(45,7) = "a"
│ │ ├── closing_loc: ∅
@@ -324,6 +341,7 @@
├── @ CaseMatchNode (location: (49,0)-(51,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (49,5)-(49,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (49,5)-(49,6) = ":"
│ │ ├── value_loc: (49,6)-(49,7) = "a"
│ │ ├── closing_loc: ∅
@@ -335,6 +353,7 @@
│ │ │ ├── constant: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (50,3)-(50,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (50,3)-(50,4) = ":"
│ │ │ │ ├── value_loc: (50,4)-(50,5) = "b"
│ │ │ │ ├── closing_loc: ∅
@@ -348,6 +367,7 @@
│ │ │ │ └── depth: 0
│ │ │ ├── posts: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (50,11)-(50,13))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (50,11)-(50,12) = ":"
│ │ │ │ ├── value_loc: (50,12)-(50,13) = "c"
│ │ │ │ ├── closing_loc: ∅
@@ -363,6 +383,7 @@
├── @ CaseMatchNode (location: (53,0)-(55,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (53,5)-(53,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (53,5)-(53,6) = ":"
│ │ ├── value_loc: (53,6)-(53,7) = "a"
│ │ ├── closing_loc: ∅
@@ -374,6 +395,7 @@
│ │ │ ├── constant: ∅
│ │ │ ├── requireds: (length: 2)
│ │ │ │ ├── @ SymbolNode (location: (54,3)-(54,5))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (54,3)-(54,4) = ":"
│ │ │ │ │ ├── value_loc: (54,4)-(54,5) = "b"
│ │ │ │ │ ├── closing_loc: ∅
@@ -382,6 +404,7 @@
│ │ │ │ ├── constant: ∅
│ │ │ │ ├── requireds: (length: 1)
│ │ │ │ │ └── @ SymbolNode (location: (54,8)-(54,10))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (54,8)-(54,9) = ":"
│ │ │ │ │ ├── value_loc: (54,9)-(54,10) = "c"
│ │ │ │ │ ├── closing_loc: ∅
@@ -403,6 +426,7 @@
├── @ CaseMatchNode (location: (57,0)-(59,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (57,5)-(57,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (57,5)-(57,6) = ":"
│ │ ├── value_loc: (57,6)-(57,7) = "a"
│ │ ├── closing_loc: ∅
@@ -428,6 +452,7 @@
├── @ CaseMatchNode (location: (61,0)-(63,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (61,5)-(61,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (61,5)-(61,6) = ":"
│ │ ├── value_loc: (61,6)-(61,7) = "a"
│ │ ├── closing_loc: ∅
@@ -468,6 +493,7 @@
├── @ CaseMatchNode (location: (65,0)-(67,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (65,5)-(65,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (65,5)-(65,6) = ":"
│ │ ├── value_loc: (65,6)-(65,7) = "a"
│ │ ├── closing_loc: ∅
@@ -508,6 +534,7 @@
├── @ CaseMatchNode (location: (69,0)-(71,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (69,5)-(69,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (69,5)-(69,6) = ":"
│ │ ├── value_loc: (69,6)-(69,7) = "a"
│ │ ├── closing_loc: ∅
@@ -560,6 +587,7 @@
├── @ CaseMatchNode (location: (73,0)-(75,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (73,5)-(73,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (73,5)-(73,6) = ":"
│ │ ├── value_loc: (73,6)-(73,7) = "a"
│ │ ├── closing_loc: ∅
@@ -571,6 +599,7 @@
│ │ │ ├── constant: ∅
│ │ │ ├── requireds: (length: 4)
│ │ │ │ ├── @ SymbolNode (location: (74,4)-(74,6))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (74,4)-(74,5) = ":"
│ │ │ │ │ ├── value_loc: (74,5)-(74,6) = "a"
│ │ │ │ │ ├── closing_loc: ∅
@@ -585,6 +614,7 @@
│ │ │ │ ├── constant: ∅
│ │ │ │ ├── requireds: (length: 1)
│ │ │ │ │ └── @ SymbolNode (location: (74,15)-(74,17))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (74,15)-(74,16) = ":"
│ │ │ │ │ ├── value_loc: (74,16)-(74,17) = "d"
│ │ │ │ │ ├── closing_loc: ∅
@@ -613,6 +643,7 @@
├── @ CaseMatchNode (location: (77,0)-(79,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (77,5)-(77,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (77,5)-(77,6) = ":"
│ │ ├── value_loc: (77,6)-(77,7) = "a"
│ │ ├── closing_loc: ∅
@@ -643,6 +674,7 @@
├── @ CaseMatchNode (location: (81,0)-(83,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (81,5)-(81,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (81,5)-(81,6) = ":"
│ │ ├── value_loc: (81,6)-(81,7) = "a"
│ │ ├── closing_loc: ∅
@@ -657,6 +689,7 @@
│ │ │ │ │ ├── constant: ∅
│ │ │ │ │ ├── requireds: (length: 2)
│ │ │ │ │ │ ├── @ SymbolNode (location: (82,5)-(82,7))
+ │ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ ├── opening_loc: (82,5)-(82,6) = ":"
│ │ │ │ │ │ │ ├── value_loc: (82,6)-(82,7) = "b"
│ │ │ │ │ │ │ ├── closing_loc: ∅
@@ -672,6 +705,7 @@
│ │ │ │ ├── constant: ∅
│ │ │ │ ├── requireds: (length: 2)
│ │ │ │ │ ├── @ SymbolNode (location: (82,14)-(82,16))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── opening_loc: (82,14)-(82,15) = ":"
│ │ │ │ │ │ ├── value_loc: (82,15)-(82,16) = "d"
│ │ │ │ │ │ ├── closing_loc: ∅
@@ -699,6 +733,7 @@
├── @ CaseMatchNode (location: (85,0)-(87,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (85,5)-(85,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (85,5)-(85,6) = ":"
│ │ ├── value_loc: (85,6)-(85,7) = "a"
│ │ ├── closing_loc: ∅
@@ -722,6 +757,7 @@
├── @ CaseMatchNode (location: (89,0)-(91,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (89,5)-(89,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (89,5)-(89,6) = ":"
│ │ ├── value_loc: (89,6)-(89,7) = "a"
│ │ ├── closing_loc: ∅
@@ -760,6 +796,7 @@
├── @ CaseMatchNode (location: (93,0)-(95,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (93,5)-(93,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (93,5)-(93,6) = ":"
│ │ ├── value_loc: (93,6)-(93,7) = "a"
│ │ ├── closing_loc: ∅
@@ -798,6 +835,7 @@
├── @ CaseMatchNode (location: (97,0)-(99,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (97,5)-(97,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (97,5)-(97,6) = ":"
│ │ ├── value_loc: (97,6)-(97,7) = "a"
│ │ ├── closing_loc: ∅
@@ -820,6 +858,7 @@
├── @ CaseMatchNode (location: (101,0)-(103,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (101,5)-(101,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (101,5)-(101,6) = ":"
│ │ ├── value_loc: (101,6)-(101,7) = "a"
│ │ ├── closing_loc: ∅
@@ -846,6 +885,7 @@
├── @ CaseMatchNode (location: (105,0)-(107,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (105,5)-(105,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (105,5)-(105,6) = ":"
│ │ ├── value_loc: (105,6)-(105,7) = "a"
│ │ ├── closing_loc: ∅
@@ -859,6 +899,7 @@
│ │ │ │ └── @ AssocNode (location: (106,5)-(106,9))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (106,5)-(106,9))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (106,5)-(106,6) = "\""
│ │ │ │ │ ├── value_loc: (106,6)-(106,7) = "b"
│ │ │ │ │ ├── closing_loc: (106,7)-(106,9) = "\":"
@@ -877,6 +918,7 @@
└── @ CaseMatchNode (location: (109,0)-(111,3))
├── predicate:
│ @ SymbolNode (location: (109,5)-(109,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (109,5)-(109,6) = ":"
│ ├── value_loc: (109,6)-(109,7) = "a"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/case_in_31.txt b/test/prism/snapshots/seattlerb/case_in_31.txt
index 7c1a73f542..b33d5943fc 100644
--- a/test/prism/snapshots/seattlerb/case_in_31.txt
+++ b/test/prism/snapshots/seattlerb/case_in_31.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -17,6 +18,7 @@
│ │ ├── constant: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ SymbolNode (location: (2,4)-(2,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,4)-(2,5) = ":"
│ │ │ ├── value_loc: (2,5)-(2,6) = "b"
│ │ │ ├── closing_loc: ∅
@@ -35,6 +37,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 a4c9aa9d42..117b27503a 100644
--- a/test/prism/snapshots/seattlerb/case_in_37.txt
+++ b/test/prism/snapshots/seattlerb/case_in_37.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -19,6 +20,7 @@
│ │ │ └── @ AssocNode (location: (2,5)-(2,17))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,5)-(2,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,5)-(2,6) = "b"
│ │ │ │ ├── closing_loc: (2,6)-(2,7) = ":"
@@ -44,6 +46,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 bd77e493a0..41f3094cd1 100644
--- a/test/prism/snapshots/seattlerb/case_in_42.txt
+++ b/test/prism/snapshots/seattlerb/case_in_42.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -17,6 +18,7 @@
│ │ ├── constant: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ SymbolNode (location: (2,3)-(2,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,3)-(2,4) = ":"
│ │ │ ├── value_loc: (2,4)-(2,5) = "b"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/case_in_42_2.txt b/test/prism/snapshots/seattlerb/case_in_42_2.txt
index 86375abc07..e144f1d13a 100644
--- a/test/prism/snapshots/seattlerb/case_in_42_2.txt
+++ b/test/prism/snapshots/seattlerb/case_in_42_2.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/case_in_47.txt b/test/prism/snapshots/seattlerb/case_in_47.txt
index 4c38e1de65..b104d00224 100644
--- a/test/prism/snapshots/seattlerb/case_in_47.txt
+++ b/test/prism/snapshots/seattlerb/case_in_47.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -22,11 +23,13 @@
│ │ │ └── expression: ∅
│ │ ├── posts: (length: 2)
│ │ │ ├── @ SymbolNode (location: (2,7)-(2,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (2,7)-(2,8) = ":"
│ │ │ │ ├── value_loc: (2,8)-(2,9) = "b"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "b"
│ │ │ └── @ SymbolNode (location: (2,11)-(2,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,11)-(2,12) = ":"
│ │ │ ├── value_loc: (2,12)-(2,13) = "c"
│ │ │ ├── closing_loc: ∅
@@ -37,6 +40,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 612f4fa6d3..4b6c2a2b17 100644
--- a/test/prism/snapshots/seattlerb/case_in_67.txt
+++ b/test/prism/snapshots/seattlerb/case_in_67.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/case_in_86.txt b/test/prism/snapshots/seattlerb/case_in_86.txt
index 0c9ad3bb31..cd11904371 100644
--- a/test/prism/snapshots/seattlerb/case_in_86.txt
+++ b/test/prism/snapshots/seattlerb/case_in_86.txt
@@ -9,11 +9,13 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (1,6)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,6)-(1,7) = ":"
│ │ │ ├── value_loc: (1,7)-(1,8) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (1,10)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,10)-(1,11) = ":"
│ │ ├── value_loc: (1,11)-(1,12) = "b"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/case_in_86_2.txt b/test/prism/snapshots/seattlerb/case_in_86_2.txt
index 9db0a0332d..f750ffa90c 100644
--- a/test/prism/snapshots/seattlerb/case_in_86_2.txt
+++ b/test/prism/snapshots/seattlerb/case_in_86_2.txt
@@ -9,11 +9,13 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (1,6)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,6)-(1,7) = ":"
│ │ │ ├── value_loc: (1,7)-(1,8) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (1,10)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,10)-(1,11) = ":"
│ │ ├── value_loc: (1,11)-(1,12) = "b"
│ │ ├── closing_loc: ∅
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 8775270671..9490477ab0 100644
--- a/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt
+++ b/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -29,6 +30,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 1b9c57039e..5d18d5fca7 100644
--- a/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt
+++ b/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -35,6 +36,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 b16682a272..e09f87f98e 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
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -35,6 +36,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 dac930a191..c31a44d952 100644
--- a/test/prism/snapshots/seattlerb/case_in_const.txt
+++ b/test/prism/snapshots/seattlerb/case_in_const.txt
@@ -16,6 +16,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 ba6655f7bf..8e4cefe48d 100644
--- a/test/prism/snapshots/seattlerb/case_in_else.txt
+++ b/test/prism/snapshots/seattlerb/case_in_else.txt
@@ -16,6 +16,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (3,2)-(3,3) = ":"
│ │ ├── value_loc: (3,3)-(3,4) = "b"
│ │ ├── closing_loc: ∅
@@ -29,6 +30,7 @@
│ │ @ StatementsNode (location: (5,2)-(5,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (5,2)-(5,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 0a34234abd..37a264e273 100644
--- a/test/prism/snapshots/seattlerb/case_in_find.txt
+++ b/test/prism/snapshots/seattlerb/case_in_find.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -24,6 +25,7 @@
│ │ │ └── depth: 0
│ │ ├── requireds: (length: 1)
│ │ │ └── @ SymbolNode (location: (2,9)-(2,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,9)-(2,10) = ":"
│ │ │ ├── value_loc: (2,10)-(2,11) = "+"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/case_in_find_array.txt b/test/prism/snapshots/seattlerb/case_in_find_array.txt
index 3fce60c9c1..757256d3fd 100644
--- a/test/prism/snapshots/seattlerb/case_in_find_array.txt
+++ b/test/prism/snapshots/seattlerb/case_in_find_array.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -21,6 +22,7 @@
│ │ │ └── expression: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ SymbolNode (location: (2,7)-(2,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (2,7)-(2,8) = ":"
│ │ │ │ ├── value_loc: (2,8)-(2,9) = "b"
│ │ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat.txt
index 174b61c0f8..50d7867c72 100644
--- a/test/prism/snapshots/seattlerb/case_in_hash_pat.txt
+++ b/test/prism/snapshots/seattlerb/case_in_hash_pat.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -19,6 +20,7 @@
│ │ │ ├── @ AssocNode (location: (2,5)-(2,11))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (2,5)-(2,7))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (2,5)-(2,6) = "b"
│ │ │ │ │ ├── closing_loc: (2,6)-(2,7) = ":"
@@ -34,6 +36,7 @@
│ │ │ └── @ AssocNode (location: (2,13)-(2,19))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,13)-(2,15))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,13)-(2,14) = "d"
│ │ │ │ ├── closing_loc: (2,14)-(2,15) = ":"
@@ -53,6 +56,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 d0673d1de4..17136fd0bc 100644
--- a/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt
+++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -19,6 +20,7 @@
│ │ │ ├── @ AssocNode (location: (2,5)-(2,20))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (2,5)-(2,7))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (2,5)-(2,6) = "b"
│ │ │ │ │ ├── closing_loc: (2,6)-(2,7) = ":"
@@ -37,6 +39,7 @@
│ │ │ ├── @ AssocNode (location: (2,22)-(2,28))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (2,22)-(2,24))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (2,22)-(2,23) = "d"
│ │ │ │ │ ├── closing_loc: (2,23)-(2,24) = ":"
@@ -52,6 +55,7 @@
│ │ │ └── @ AssocNode (location: (2,30)-(2,32))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,30)-(2,32))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,30)-(2,31) = "f"
│ │ │ │ ├── closing_loc: (2,31)-(2,32) = ":"
@@ -65,6 +69,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 802f4d7efd..8c25711bfd 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
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -21,6 +22,7 @@
│ │ │ └── @ AssocNode (location: (2,5)-(2,10))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,5)-(2,7))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,5)-(2,6) = "a"
│ │ │ │ ├── closing_loc: (2,6)-(2,7) = ":"
@@ -36,6 +38,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 c445b01030..f062b23cbc 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
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -19,6 +20,7 @@
│ │ │ └── @ AssocNode (location: (2,3)-(2,10))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,3)-(2,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,3)-(2,4) = "b"
│ │ │ │ ├── closing_loc: (2,4)-(2,5) = ":"
@@ -33,6 +35,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 83e247cb91..e218788cdc 100644
--- a/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt
+++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -19,6 +20,7 @@
│ │ │ ├── @ AssocNode (location: (2,3)-(2,7))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (2,3)-(2,5))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (2,3)-(2,4) = "b"
│ │ │ │ │ ├── closing_loc: (2,4)-(2,5) = ":"
@@ -41,6 +43,7 @@
│ │ @ StatementsNode (location: (2,21)-(2,23))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (2,21)-(2,23))
+ │ │ ├── flags: ∅
│ │ ├── 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 6b6147e28f..78f7840544 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
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -29,6 +30,7 @@
│ │ @ StatementsNode (location: (2,15)-(2,17))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (2,15)-(2,17))
+ │ │ ├── flags: ∅
│ │ ├── 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 dfc51b5ea5..4292c1effa 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
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(6,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -29,6 +30,7 @@
│ │ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,2)-(3,3) = ":"
│ │ │ ├── value_loc: (3,3)-(3,4) = "C"
│ │ │ ├── closing_loc: ∅
@@ -53,6 +55,7 @@
│ │ @ StatementsNode (location: (5,2)-(5,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (5,2)-(5,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 fe6eb13fd1..60d48f0be4 100644
--- a/test/prism/snapshots/seattlerb/case_in_multiple.txt
+++ b/test/prism/snapshots/seattlerb/case_in_multiple.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(6,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -25,6 +26,7 @@
│ │ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,2)-(3,3) = ":"
│ │ │ ├── value_loc: (3,3)-(3,4) = "C"
│ │ │ ├── closing_loc: ∅
@@ -45,6 +47,7 @@
│ │ @ StatementsNode (location: (5,2)-(5,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (5,2)-(5,4))
+ │ │ ├── flags: ∅
│ │ ├── 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 11a706b283..26c26974da 100644
--- a/test/prism/snapshots/seattlerb/case_in_or.txt
+++ b/test/prism/snapshots/seattlerb/case_in_or.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -25,6 +26,7 @@
│ │ @ StatementsNode (location: (3,2)-(3,4))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (3,2)-(3,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (3,2)-(3,3) = ":"
│ │ ├── value_loc: (3,3)-(3,4) = "d"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/defn_args_forward_args.txt b/test/prism/snapshots/seattlerb/defn_args_forward_args.txt
index b1854d9a35..e78a807e1c 100644
--- a/test/prism/snapshots/seattlerb/defn_args_forward_args.txt
+++ b/test/prism/snapshots/seattlerb/defn_args_forward_args.txt
@@ -38,6 +38,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 3)
│ │ ├── @ SymbolNode (location: (1,23)-(1,27))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,23)-(1,24) = ":"
│ │ │ ├── value_loc: (1,24)-(1,27) = "get"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt b/test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt
index 699f854e8a..ad8d189fd1 100644
--- a/test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt
+++ b/test/prism/snapshots/seattlerb/defn_kwarg_lvar.txt
@@ -19,6 +19,7 @@
│ │ ├── name_loc: (1,8)-(1,11) = "kw:"
│ │ └── value:
│ │ @ SymbolNode (location: (1,12)-(1,16))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,12)-(1,13) = ":"
│ │ ├── value_loc: (1,13)-(1,16) = "val"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt b/test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt
index 5129ccb227..6ef9635fb6 100644
--- a/test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt
+++ b/test/prism/snapshots/seattlerb/defn_reg_opt_reg.txt
@@ -19,6 +19,7 @@
│ │ ├── operator_loc: (1,11)-(1,12) = "="
│ │ └── value:
│ │ @ SymbolNode (location: (1,13)-(1,15))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,13)-(1,14) = ":"
│ │ ├── value_loc: (1,14)-(1,15) = "c"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/difficult2_.txt b/test/prism/snapshots/seattlerb/difficult2_.txt
index 4d5b3ab528..182158b285 100644
--- a/test/prism/snapshots/seattlerb/difficult2_.txt
+++ b/test/prism/snapshots/seattlerb/difficult2_.txt
@@ -57,6 +57,7 @@
│ └── @ AssocNode (location: (2,2)-(2,6))
│ ├── key:
│ │ @ SymbolNode (location: (2,2)-(2,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (2,2)-(2,3) = "d"
│ │ ├── closing_loc: (2,3)-(2,4) = ":"
diff --git a/test/prism/snapshots/seattlerb/difficult7_.txt b/test/prism/snapshots/seattlerb/difficult7_.txt
index 58da75e77b..28c3753aed 100644
--- a/test/prism/snapshots/seattlerb/difficult7_.txt
+++ b/test/prism/snapshots/seattlerb/difficult7_.txt
@@ -9,6 +9,7 @@
│ ├── @ AssocNode (location: (2,8)-(2,33))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (2,8)-(2,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (2,8)-(2,9) = "a"
│ │ │ ├── closing_loc: (2,9)-(2,10) = ":"
@@ -82,6 +83,7 @@
│ └── @ AssocNode (location: (3,8)-(3,14))
│ ├── key:
│ │ @ SymbolNode (location: (3,8)-(3,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (3,8)-(3,9) = "e"
│ │ ├── closing_loc: (3,9)-(3,10) = ":"
diff --git a/test/prism/snapshots/seattlerb/dstr_lex_state.txt b/test/prism/snapshots/seattlerb/dstr_lex_state.txt
index 56264cea05..cc2c07a027 100644
--- a/test/prism/snapshots/seattlerb/dstr_lex_state.txt
+++ b/test/prism/snapshots/seattlerb/dstr_lex_state.txt
@@ -23,6 +23,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ SymbolNode (location: (1,4)-(1,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,4)-(1,5) = ":"
│ │ │ ├── value_loc: (1,5)-(1,6) = "a"
│ │ │ ├── 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 a52ac4043c..e3da9c4a9a 100644
--- a/test/prism/snapshots/seattlerb/dsym_esc_to_sym.txt
+++ b/test/prism/snapshots/seattlerb/dsym_esc_to_sym.txt
@@ -4,6 +4,7 @@
@ StatementsNode (location: (1,0)-(1,17))
└── body: (length: 1)
└── @ SymbolNode (location: (1,0)-(1,17))
+ ├── flags: ∅
├── 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 1d7fcf801f..92ca039207 100644
--- a/test/prism/snapshots/seattlerb/dsym_to_sym.txt
+++ b/test/prism/snapshots/seattlerb/dsym_to_sym.txt
@@ -6,12 +6,14 @@
├── @ AliasMethodNode (location: (1,0)-(1,17))
│ ├── new_name:
│ │ @ SymbolNode (location: (1,6)-(1,11))
+ │ │ ├── flags: ∅
│ │ ├── 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: ∅
│ │ ├── opening_loc: (1,12)-(1,14) = ":\""
│ │ ├── value_loc: (1,14)-(1,16) = ">>"
│ │ ├── closing_loc: (1,16)-(1,17) = "\""
@@ -20,12 +22,14 @@
└── @ AliasMethodNode (location: (3,0)-(3,13))
├── new_name:
│ @ SymbolNode (location: (3,6)-(3,9))
+ │ ├── flags: ∅
│ ├── opening_loc: (3,6)-(3,7) = ":"
│ ├── value_loc: (3,7)-(3,9) = "<<"
│ ├── closing_loc: ∅
│ └── unescaped: "<<"
├── old_name:
│ @ SymbolNode (location: (3,10)-(3,13))
+ │ ├── flags: ∅
│ ├── opening_loc: (3,10)-(3,11) = ":"
│ ├── value_loc: (3,11)-(3,13) = ">>"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/if_symbol.txt b/test/prism/snapshots/seattlerb/if_symbol.txt
index ee400c931d..65558b2e9b 100644
--- a/test/prism/snapshots/seattlerb/if_symbol.txt
+++ b/test/prism/snapshots/seattlerb/if_symbol.txt
@@ -18,6 +18,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (1,5)-(1,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,5)-(1,6) = ":"
│ │ ├── value_loc: (1,6)-(1,7) = "x"
│ │ ├── closing_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 c203ec781c..f196555770 100644
--- a/test/prism/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt
+++ b/test/prism/snapshots/seattlerb/interpolated_symbol_array_line_breaks.txt
@@ -7,11 +7,13 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (2,0)-(2,1))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (2,0)-(2,1) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (3,0)-(3,1))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (3,0)-(3,1) = "b"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/magic_encoding_comment.txt b/test/prism/snapshots/seattlerb/magic_encoding_comment.txt
index 24cb61c2d0..ce6e432133 100644
--- a/test/prism/snapshots/seattlerb/magic_encoding_comment.txt
+++ b/test/prism/snapshots/seattlerb/magic_encoding_comment.txt
@@ -29,6 +29,7 @@
│ │ ├── name_loc: (2,49)-(2,54) = "così"
│ │ ├── value:
│ │ │ @ SymbolNode (location: (2,57)-(2,63))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,57)-(2,58) = ":"
│ │ │ ├── value_loc: (2,58)-(2,63) = "però"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/multiline_hash_declaration.txt b/test/prism/snapshots/seattlerb/multiline_hash_declaration.txt
index 208ecdcbc5..305949a720 100644
--- a/test/prism/snapshots/seattlerb/multiline_hash_declaration.txt
+++ b/test/prism/snapshots/seattlerb/multiline_hash_declaration.txt
@@ -19,6 +19,7 @@
│ │ └── @ AssocNode (location: (1,2)-(3,1))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,2)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,2)-(1,7) = "state"
│ │ │ ├── closing_loc: (1,7)-(1,8) = ":"
@@ -47,6 +48,7 @@
│ │ └── @ AssocNode (location: (5,2)-(6,1))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,2)-(5,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (5,2)-(5,7) = "state"
│ │ │ ├── closing_loc: (5,7)-(5,8) = ":"
@@ -75,6 +77,7 @@
│ └── @ AssocNode (location: (8,2)-(8,11))
│ ├── key:
│ │ @ SymbolNode (location: (8,2)-(8,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (8,2)-(8,7) = "state"
│ │ ├── closing_loc: (8,7)-(8,8) = ":"
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 4bea3d1a26..08dce249af 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
@@ -7,11 +7,13 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (2,0)-(2,1))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (2,0)-(2,1) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (3,0)-(3,1))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (3,0)-(3,1) = "b"
│ │ ├── closing_loc: ∅
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 8737263e2b..03b8811fc1 100644
--- a/test/prism/snapshots/seattlerb/op_asgn_index_command_call.txt
+++ b/test/prism/snapshots/seattlerb/op_asgn_index_command_call.txt
@@ -23,6 +23,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ SymbolNode (location: (1,2)-(1,4))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,2)-(1,3) = ":"
│ ├── value_loc: (1,3)-(1,4) = "b"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_line_hash_lit.txt b/test/prism/snapshots/seattlerb/parse_line_hash_lit.txt
index b29f36bf22..17aa26bda7 100644
--- a/test/prism/snapshots/seattlerb/parse_line_hash_lit.txt
+++ b/test/prism/snapshots/seattlerb/parse_line_hash_lit.txt
@@ -9,6 +9,7 @@
│ └── @ AssocNode (location: (2,0)-(2,8))
│ ├── key:
│ │ @ SymbolNode (location: (2,0)-(2,3))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (2,0)-(2,1) = ":"
│ │ ├── value_loc: (2,1)-(2,3) = "s1"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_058.txt b/test/prism/snapshots/seattlerb/parse_pattern_058.txt
index 830cdaef1d..b4a1b2650b 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_058.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_058.txt
@@ -11,6 +11,7 @@
│ │ └── @ AssocNode (location: (1,6)-(1,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,6)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,6)-(1,7) = "a"
│ │ │ ├── closing_loc: (1,7)-(1,8) = ":"
@@ -29,6 +30,7 @@
│ │ │ ├── @ AssocNode (location: (2,4)-(2,6))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (2,4)-(2,6))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (2,4)-(2,5) = "a"
│ │ │ │ │ ├── closing_loc: (2,5)-(2,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt b/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt
index 18f3bde6aa..f6625efc69 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt
@@ -11,6 +11,7 @@
│ │ └── @ AssocNode (location: (1,6)-(1,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,6)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,6)-(1,7) = "a"
│ │ │ ├── closing_loc: (1,7)-(1,8) = ":"
@@ -29,6 +30,7 @@
│ │ │ ├── @ AssocNode (location: (2,4)-(2,6))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (2,4)-(2,6))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (2,4)-(2,5) = "a"
│ │ │ │ │ ├── closing_loc: (2,5)-(2,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_069.txt b/test/prism/snapshots/seattlerb/parse_pattern_069.txt
index 98661ae2fb..b5cd94cd77 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_069.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_069.txt
@@ -6,6 +6,7 @@
└── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,5)-(1,6) = ":"
│ ├── value_loc: (1,6)-(1,7) = "a"
│ ├── closing_loc: ∅
@@ -21,6 +22,7 @@
│ │ │ └── @ AssocNode (location: (2,10)-(2,14))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,10)-(2,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,10)-(2,11) = "b"
│ │ │ │ ├── closing_loc: (2,11)-(2,12) = ":"
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_076.txt b/test/prism/snapshots/seattlerb/parse_pattern_076.txt
index 7f3131ccfb..7cf05ddad4 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_076.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_076.txt
@@ -11,6 +11,7 @@
│ │ └── @ AssocNode (location: (1,6)-(1,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,6)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,6)-(1,7) = "a"
│ │ │ ├── closing_loc: (1,7)-(1,8) = ":"
@@ -29,6 +30,7 @@
│ │ │ ├── @ AssocNode (location: (2,4)-(2,8))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (2,4)-(2,6))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (2,4)-(2,5) = "a"
│ │ │ │ │ ├── closing_loc: (2,5)-(2,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/qsymbols.txt b/test/prism/snapshots/seattlerb/qsymbols.txt
index fea12b646a..ff04f9a650 100644
--- a/test/prism/snapshots/seattlerb/qsymbols.txt
+++ b/test/prism/snapshots/seattlerb/qsymbols.txt
@@ -7,16 +7,19 @@
├── flags: ∅
├── elements: (length: 3)
│ ├── @ SymbolNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,4) = "a"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a"
│ ├── @ SymbolNode (location: (1,5)-(1,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,5)-(1,6) = "b"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b"
│ └── @ SymbolNode (location: (1,7)-(1,8))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── value_loc: (1,7)-(1,8) = "c"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/qsymbols_interp.txt b/test/prism/snapshots/seattlerb/qsymbols_interp.txt
index 67645c4053..16b9f7c845 100644
--- a/test/prism/snapshots/seattlerb/qsymbols_interp.txt
+++ b/test/prism/snapshots/seattlerb/qsymbols_interp.txt
@@ -7,6 +7,7 @@
├── flags: ∅
├── elements: (length: 3)
│ ├── @ SymbolNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,4) = "a"
│ │ ├── closing_loc: ∅
@@ -45,6 +46,7 @@
│ │ │ └── closing_loc: (1,11)-(1,12) = "}"
│ │ └── closing_loc: ∅
│ └── @ SymbolNode (location: (1,13)-(1,14))
+ │ ├── flags: ∅
│ ├── 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 9727fac0a0..1650acc211 100644
--- a/test/prism/snapshots/seattlerb/quoted_symbol_hash_arg.txt
+++ b/test/prism/snapshots/seattlerb/quoted_symbol_hash_arg.txt
@@ -19,6 +19,7 @@
│ └── @ AssocNode (location: (1,5)-(1,12))
│ ├── key:
│ │ @ SymbolNode (location: (1,5)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,5)-(1,6) = "'"
│ │ ├── value_loc: (1,6)-(1,7) = "a"
│ │ ├── closing_loc: (1,7)-(1,9) = "':"
diff --git a/test/prism/snapshots/seattlerb/quoted_symbol_keys.txt b/test/prism/snapshots/seattlerb/quoted_symbol_keys.txt
index f7dc2289f3..1e28bb61cb 100644
--- a/test/prism/snapshots/seattlerb/quoted_symbol_keys.txt
+++ b/test/prism/snapshots/seattlerb/quoted_symbol_keys.txt
@@ -9,12 +9,14 @@
│ └── @ AssocNode (location: (1,2)-(1,9))
│ ├── key:
│ │ @ SymbolNode (location: (1,2)-(1,6))
+ │ │ ├── flags: ∅
│ │ ├── 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: ∅
│ │ ├── opening_loc: (1,7)-(1,8) = ":"
│ │ ├── value_loc: (1,8)-(1,9) = "b"
│ │ ├── closing_loc: ∅
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 4dd724b36b..9640b4d060 100644
--- a/test/prism/snapshots/seattlerb/rescue_do_end_ensure_result.txt
+++ b/test/prism/snapshots/seattlerb/rescue_do_end_ensure_result.txt
@@ -27,6 +27,7 @@
│ │ │ @ StatementsNode (location: (2,2)-(2,8))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (2,2)-(2,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,2)-(2,3) = ":"
│ │ │ ├── value_loc: (2,3)-(2,8) = "begin"
│ │ │ ├── closing_loc: ∅
@@ -40,6 +41,7 @@
│ │ │ │ @ StatementsNode (location: (4,2)-(4,9))
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (4,2)-(4,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── 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 06cff0804b..d5e1180a26 100644
--- a/test/prism/snapshots/seattlerb/rescue_do_end_no_raise.txt
+++ b/test/prism/snapshots/seattlerb/rescue_do_end_no_raise.txt
@@ -24,6 +24,7 @@
│ │ @ StatementsNode (location: (2,2)-(2,8))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (2,2)-(2,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (2,2)-(2,3) = ":"
│ │ ├── value_loc: (2,3)-(2,8) = "begin"
│ │ ├── closing_loc: ∅
@@ -38,6 +39,7 @@
│ │ │ @ StatementsNode (location: (4,2)-(4,9))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (4,2)-(4,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (4,2)-(4,3) = ":"
│ │ │ ├── value_loc: (4,3)-(4,9) = "rescue"
│ │ │ ├── closing_loc: ∅
@@ -50,6 +52,7 @@
│ │ │ @ StatementsNode (location: (6,2)-(6,7))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (6,2)-(6,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (6,2)-(6,3) = ":"
│ │ │ ├── value_loc: (6,3)-(6,7) = "else"
│ │ │ ├── closing_loc: ∅
@@ -62,6 +65,7 @@
│ │ │ @ StatementsNode (location: (8,2)-(8,9))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (8,2)-(8,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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 e4eedae9a8..d400d7c4f9 100644
--- a/test/prism/snapshots/seattlerb/rescue_do_end_raised.txt
+++ b/test/prism/snapshots/seattlerb/rescue_do_end_raised.txt
@@ -42,6 +42,7 @@
│ │ │ @ StatementsNode (location: (4,2)-(4,9))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (4,2)-(4,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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 8beab662e6..1b66ad6e3b 100644
--- a/test/prism/snapshots/seattlerb/rescue_do_end_rescued.txt
+++ b/test/prism/snapshots/seattlerb/rescue_do_end_rescued.txt
@@ -43,6 +43,7 @@
│ │ │ @ StatementsNode (location: (4,2)-(4,9))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (4,2)-(4,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (4,2)-(4,3) = ":"
│ │ │ ├── value_loc: (4,3)-(4,9) = "rescue"
│ │ │ ├── closing_loc: ∅
@@ -55,6 +56,7 @@
│ │ │ @ StatementsNode (location: (6,2)-(6,7))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (6,2)-(6,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (6,2)-(6,3) = ":"
│ │ │ ├── value_loc: (6,3)-(6,7) = "else"
│ │ │ ├── closing_loc: ∅
@@ -67,6 +69,7 @@
│ │ │ @ StatementsNode (location: (8,2)-(8,9))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (8,2)-(8,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (8,2)-(8,3) = ":"
│ │ │ ├── value_loc: (8,3)-(8,9) = "ensure"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/return_call_assocs.txt b/test/prism/snapshots/seattlerb/return_call_assocs.txt
index 64ab636ffc..047eb1d93e 100644
--- a/test/prism/snapshots/seattlerb/return_call_assocs.txt
+++ b/test/prism/snapshots/seattlerb/return_call_assocs.txt
@@ -16,6 +16,7 @@
│ └── @ AssocNode (location: (1,10)-(1,17))
│ ├── key:
│ │ @ SymbolNode (location: (1,10)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,10)-(1,11) = ":"
│ │ ├── value_loc: (1,11)-(1,12) = "z"
│ │ ├── closing_loc: ∅
@@ -37,6 +38,7 @@
│ ├── @ AssocNode (location: (3,10)-(3,17))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (3,10)-(3,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,10)-(3,11) = ":"
│ │ │ ├── value_loc: (3,11)-(3,12) = "z"
│ │ │ ├── closing_loc: ∅
@@ -48,6 +50,7 @@
│ └── @ AssocNode (location: (3,19)-(3,26))
│ ├── key:
│ │ @ SymbolNode (location: (3,19)-(3,21))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (3,19)-(3,20) = ":"
│ │ ├── value_loc: (3,20)-(3,21) = "w"
│ │ ├── closing_loc: ∅
@@ -78,6 +81,7 @@
│ │ └── @ AssocNode (location: (5,9)-(5,14))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,9)-(5,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (5,9)-(5,10) = ":"
│ │ │ ├── value_loc: (5,10)-(5,11) = "z"
│ │ │ ├── closing_loc: ∅
@@ -110,6 +114,7 @@
│ │ └── @ AssocNode (location: (7,9)-(7,12))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (7,9)-(7,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (7,9)-(7,10) = "z"
│ │ │ ├── closing_loc: (7,10)-(7,11) = ":"
@@ -142,6 +147,7 @@
│ │ └── @ AssocNode (location: (9,9)-(9,12))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (9,9)-(9,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (9,9)-(9,10) = "z"
│ │ │ ├── closing_loc: (9,10)-(9,11) = ":"
diff --git a/test/prism/snapshots/seattlerb/symbol_empty.txt b/test/prism/snapshots/seattlerb/symbol_empty.txt
index ab423959a0..0208aa39c5 100644
--- a/test/prism/snapshots/seattlerb/symbol_empty.txt
+++ b/test/prism/snapshots/seattlerb/symbol_empty.txt
@@ -4,6 +4,7 @@
@ StatementsNode (location: (1,0)-(1,3))
└── body: (length: 1)
└── @ SymbolNode (location: (1,0)-(1,3))
+ ├── flags: ∅
├── 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/symbols.txt b/test/prism/snapshots/seattlerb/symbols.txt
index 936acc01f3..bd07b09de3 100644
--- a/test/prism/snapshots/seattlerb/symbols.txt
+++ b/test/prism/snapshots/seattlerb/symbols.txt
@@ -7,16 +7,19 @@
├── flags: ∅
├── elements: (length: 3)
│ ├── @ SymbolNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,4) = "a"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a"
│ ├── @ SymbolNode (location: (1,5)-(1,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,5)-(1,6) = "b"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b"
│ └── @ SymbolNode (location: (1,7)-(1,8))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── value_loc: (1,7)-(1,8) = "c"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/symbols_interp.txt b/test/prism/snapshots/seattlerb/symbols_interp.txt
index a86d41f448..d141c9a5a2 100644
--- a/test/prism/snapshots/seattlerb/symbols_interp.txt
+++ b/test/prism/snapshots/seattlerb/symbols_interp.txt
@@ -7,16 +7,19 @@
├── flags: ∅
├── elements: (length: 3)
│ ├── @ SymbolNode (location: (1,3)-(1,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,4) = "a"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a"
│ ├── @ SymbolNode (location: (1,5)-(1,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,5)-(1,12) = "b\#{1+1}"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b\#{1+1}"
│ └── @ SymbolNode (location: (1,13)-(1,14))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── value_loc: (1,13)-(1,14) = "c"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/unary_plus_on_literal.txt b/test/prism/snapshots/seattlerb/unary_plus_on_literal.txt
index 7564d00ba1..1638de8b8d 100644
--- a/test/prism/snapshots/seattlerb/unary_plus_on_literal.txt
+++ b/test/prism/snapshots/seattlerb/unary_plus_on_literal.txt
@@ -7,6 +7,7 @@
├── flags: ∅
├── receiver:
│ @ SymbolNode (location: (1,1)-(1,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,1)-(1,2) = ":"
│ ├── value_loc: (1,2)-(1,3) = "a"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/seattlerb/yield_call_assocs.txt b/test/prism/snapshots/seattlerb/yield_call_assocs.txt
index cade701ce3..559309af42 100644
--- a/test/prism/snapshots/seattlerb/yield_call_assocs.txt
+++ b/test/prism/snapshots/seattlerb/yield_call_assocs.txt
@@ -17,6 +17,7 @@
│ │ └── @ AssocNode (location: (1,9)-(1,16))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,9)-(1,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,9)-(1,10) = ":"
│ │ │ ├── value_loc: (1,10)-(1,11) = "z"
│ │ │ ├── closing_loc: ∅
@@ -40,6 +41,7 @@
│ │ ├── @ AssocNode (location: (3,9)-(3,16))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (3,9)-(3,11))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (3,9)-(3,10) = ":"
│ │ │ │ ├── value_loc: (3,10)-(3,11) = "z"
│ │ │ │ ├── closing_loc: ∅
@@ -51,6 +53,7 @@
│ │ └── @ AssocNode (location: (3,18)-(3,25))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (3,18)-(3,20))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,18)-(3,19) = ":"
│ │ │ ├── value_loc: (3,19)-(3,20) = "w"
│ │ │ ├── closing_loc: ∅
@@ -83,6 +86,7 @@
│ │ │ └── @ AssocNode (location: (5,8)-(5,13))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (5,8)-(5,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (5,8)-(5,9) = ":"
│ │ │ │ ├── value_loc: (5,9)-(5,10) = "z"
│ │ │ │ ├── closing_loc: ∅
@@ -117,6 +121,7 @@
│ │ │ └── @ AssocNode (location: (7,8)-(7,11))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (7,8)-(7,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (7,8)-(7,9) = "z"
│ │ │ │ ├── closing_loc: (7,9)-(7,10) = ":"
@@ -151,6 +156,7 @@
│ │ │ └── @ AssocNode (location: (9,8)-(9,11))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (9,8)-(9,10))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (9,8)-(9,9) = "z"
│ │ │ │ ├── closing_loc: (9,9)-(9,10) = ":"
diff --git a/test/prism/snapshots/spanning_heredoc.txt b/test/prism/snapshots/spanning_heredoc.txt
index f203e5ac26..3c42d5728e 100644
--- a/test/prism/snapshots/spanning_heredoc.txt
+++ b/test/prism/snapshots/spanning_heredoc.txt
@@ -260,11 +260,13 @@
│ │ ├── flags: ∅
│ │ ├── elements: (length: 2)
│ │ │ ├── @ SymbolNode (location: (41,12)-(41,14))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (41,12)-(41,14) = "n\\"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "n\n"
│ │ │ └── @ SymbolNode (location: (44,0)-(44,1))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (44,0)-(44,1) = "n"
│ │ │ ├── closing_loc: ∅
@@ -297,6 +299,7 @@
│ │ │ ├── opening_loc: ∅
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ SymbolNode (location: (48,12)-(48,14))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (48,12)-(48,14) = "p\\"
│ │ │ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/strings.txt b/test/prism/snapshots/strings.txt
index d625fa0d58..eec1d27f33 100644
--- a/test/prism/snapshots/strings.txt
+++ b/test/prism/snapshots/strings.txt
@@ -177,6 +177,7 @@
│ ├── closing_loc: (43,6)-(43,7) = "}"
│ └── unescaped: "abc"
├── @ SymbolNode (location: (45,0)-(45,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (45,0)-(45,3) = "%s["
│ ├── value_loc: (45,3)-(45,6) = "abc"
│ ├── closing_loc: (45,6)-(45,7) = "]"
diff --git a/test/prism/snapshots/super.txt b/test/prism/snapshots/super.txt
index 940acd5beb..72ed5625bd 100644
--- a/test/prism/snapshots/super.txt
+++ b/test/prism/snapshots/super.txt
@@ -46,6 +46,7 @@
│ @ BlockArgumentNode (location: (9,6)-(9,11))
│ ├── expression:
│ │ @ SymbolNode (location: (9,7)-(9,11))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (9,7)-(9,8) = ":"
│ │ ├── value_loc: (9,8)-(9,11) = "foo"
│ │ ├── closing_loc: ∅
@@ -60,6 +61,7 @@
│ @ BlockArgumentNode (location: (11,6)-(11,11))
│ ├── expression:
│ │ @ SymbolNode (location: (11,7)-(11,11))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (11,7)-(11,8) = ":"
│ │ ├── value_loc: (11,8)-(11,11) = "foo"
│ │ ├── closing_loc: ∅
@@ -114,6 +116,7 @@
@ BlockArgumentNode (location: (17,15)-(17,20))
├── expression:
│ @ SymbolNode (location: (17,16)-(17,20))
+ │ ├── flags: ∅
│ ├── 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 0cf1757e6b..e830ddb7cc 100644
--- a/test/prism/snapshots/symbols.txt
+++ b/test/prism/snapshots/symbols.txt
@@ -4,6 +4,7 @@
@ StatementsNode (location: (1,0)-(93,13))
└── body: (length: 47)
├── @ SymbolNode (location: (1,0)-(1,6))
+ │ ├── flags: ∅
│ ├── opening_loc: (1,0)-(1,2) = ":'"
│ ├── value_loc: (1,2)-(1,5) = "abc"
│ ├── closing_loc: (1,5)-(1,6) = "'"
@@ -50,21 +51,25 @@
│ ├── flags: ∅
│ ├── elements: (length: 4)
│ │ ├── @ SymbolNode (location: (7,1)-(7,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (7,1)-(7,2) = ":"
│ │ │ ├── value_loc: (7,2)-(7,4) = "Υ"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "Υ"
│ │ ├── @ SymbolNode (location: (7,6)-(7,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (7,6)-(7,7) = ":"
│ │ │ ├── value_loc: (7,7)-(7,9) = "ά"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "ά"
│ │ ├── @ SymbolNode (location: (7,11)-(7,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (7,11)-(7,12) = ":"
│ │ │ ├── value_loc: (7,12)-(7,14) = "ŗ"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "ŗ"
│ │ └── @ SymbolNode (location: (7,16)-(7,19))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (7,16)-(7,17) = ":"
│ │ ├── value_loc: (7,17)-(7,19) = "ρ"
│ │ ├── closing_loc: ∅
@@ -72,51 +77,61 @@
│ ├── opening_loc: (7,0)-(7,1) = "["
│ └── closing_loc: (7,19)-(7,20) = "]"
├── @ SymbolNode (location: (9,0)-(9,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (9,0)-(9,1) = ":"
│ ├── value_loc: (9,1)-(9,3) = "-@"
│ ├── closing_loc: ∅
│ └── unescaped: "-@"
├── @ SymbolNode (location: (11,0)-(11,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (11,0)-(11,1) = ":"
│ ├── value_loc: (11,1)-(11,2) = "-"
│ ├── closing_loc: ∅
│ └── unescaped: "-"
├── @ SymbolNode (location: (13,0)-(13,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (13,0)-(13,1) = ":"
│ ├── value_loc: (13,1)-(13,2) = "%"
│ ├── closing_loc: ∅
│ └── unescaped: "%"
├── @ SymbolNode (location: (15,0)-(15,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (15,0)-(15,1) = ":"
│ ├── value_loc: (15,1)-(15,2) = "|"
│ ├── closing_loc: ∅
│ └── unescaped: "|"
├── @ SymbolNode (location: (17,0)-(17,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (17,0)-(17,1) = ":"
│ ├── value_loc: (17,1)-(17,3) = "+@"
│ ├── closing_loc: ∅
│ └── unescaped: "+@"
├── @ SymbolNode (location: (19,0)-(19,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (19,0)-(19,1) = ":"
│ ├── value_loc: (19,1)-(19,2) = "+"
│ ├── closing_loc: ∅
│ └── unescaped: "+"
├── @ SymbolNode (location: (21,0)-(21,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (21,0)-(21,1) = ":"
│ ├── value_loc: (21,1)-(21,2) = "/"
│ ├── closing_loc: ∅
│ └── unescaped: "/"
├── @ SymbolNode (location: (23,0)-(23,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (23,0)-(23,1) = ":"
│ ├── value_loc: (23,1)-(23,3) = "**"
│ ├── closing_loc: ∅
│ └── unescaped: "**"
├── @ SymbolNode (location: (25,0)-(25,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (25,0)-(25,1) = ":"
│ ├── value_loc: (25,1)-(25,2) = "*"
│ ├── closing_loc: ∅
│ └── unescaped: "*"
├── @ SymbolNode (location: (27,0)-(27,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (27,0)-(27,1) = ":"
│ ├── value_loc: (27,1)-(27,3) = "~@"
│ ├── closing_loc: ∅
@@ -138,11 +153,13 @@
│ ├── opening_loc: (29,0)-(29,1) = "["
│ └── closing_loc: (29,15)-(29,16) = "]"
├── @ SymbolNode (location: (31,0)-(31,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (31,0)-(31,1) = ":"
│ ├── value_loc: (31,1)-(31,2) = "~"
│ ├── closing_loc: ∅
│ └── unescaped: "~"
├── @ SymbolNode (location: (33,0)-(33,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (33,0)-(33,1) = ":"
│ ├── value_loc: (33,1)-(33,2) = "a"
│ ├── closing_loc: ∅
@@ -151,16 +168,19 @@
│ ├── flags: ∅
│ ├── elements: (length: 3)
│ │ ├── @ SymbolNode (location: (35,3)-(35,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (35,3)-(35,4) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ ├── @ SymbolNode (location: (35,5)-(35,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (35,5)-(35,6) = "b"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b"
│ │ └── @ SymbolNode (location: (35,7)-(35,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (35,7)-(35,8) = "c"
│ │ ├── closing_loc: ∅
@@ -171,21 +191,25 @@
│ ├── flags: ∅
│ ├── elements: (length: 4)
│ │ ├── @ SymbolNode (location: (37,3)-(37,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (37,3)-(37,4) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ ├── @ SymbolNode (location: (37,5)-(37,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (37,5)-(37,10) = "b\#{1}"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b\#{1}"
│ │ ├── @ SymbolNode (location: (37,11)-(37,16))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (37,11)-(37,16) = "\#{2}c"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "\#{2}c"
│ │ └── @ SymbolNode (location: (37,17)-(37,23))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (37,17)-(37,23) = "d\#{3}f"
│ │ ├── closing_loc: ∅
@@ -196,6 +220,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 4)
│ │ ├── @ SymbolNode (location: (39,3)-(39,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (39,3)-(39,4) = "a"
│ │ │ ├── closing_loc: ∅
@@ -263,11 +288,13 @@
│ ├── opening_loc: (39,0)-(39,3) = "%I["
│ └── closing_loc: (39,23)-(39,24) = "]"
├── @ SymbolNode (location: (41,0)-(41,4))
+ │ ├── flags: ∅
│ ├── opening_loc: (41,0)-(41,1) = ":"
│ ├── value_loc: (41,1)-(41,4) = "@@a"
│ ├── closing_loc: ∅
│ └── unescaped: "@@a"
├── @ SymbolNode (location: (43,0)-(43,5))
+ │ ├── flags: ∅
│ ├── opening_loc: (43,0)-(43,1) = ":"
│ ├── value_loc: (43,1)-(43,5) = "👍"
│ ├── closing_loc: ∅
@@ -276,6 +303,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (45,3)-(45,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (45,3)-(45,6) = "a\\b"
│ │ ├── closing_loc: ∅
@@ -283,121 +311,145 @@
│ ├── opening_loc: (45,0)-(45,3) = "%i["
│ └── closing_loc: (45,6)-(45,7) = "]"
├── @ SymbolNode (location: (47,0)-(47,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (47,0)-(47,1) = ":"
│ ├── value_loc: (47,1)-(47,3) = "$a"
│ ├── closing_loc: ∅
│ └── unescaped: "$a"
├── @ SymbolNode (location: (49,0)-(49,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (49,0)-(49,1) = ":"
│ ├── value_loc: (49,1)-(49,3) = "@a"
│ ├── closing_loc: ∅
│ └── unescaped: "@a"
├── @ SymbolNode (location: (51,0)-(51,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (51,0)-(51,1) = ":"
│ ├── value_loc: (51,1)-(51,3) = "do"
│ ├── closing_loc: ∅
│ └── unescaped: "do"
├── @ SymbolNode (location: (53,0)-(53,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (53,0)-(53,1) = ":"
│ ├── value_loc: (53,1)-(53,2) = "&"
│ ├── closing_loc: ∅
│ └── unescaped: "&"
├── @ SymbolNode (location: (55,0)-(55,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (55,0)-(55,1) = ":"
│ ├── value_loc: (55,1)-(55,2) = "`"
│ ├── closing_loc: ∅
│ └── unescaped: "`"
├── @ SymbolNode (location: (57,0)-(57,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (57,0)-(57,1) = ":"
│ ├── value_loc: (57,1)-(57,3) = "!@"
│ ├── closing_loc: ∅
│ └── unescaped: "!@"
├── @ SymbolNode (location: (59,0)-(59,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (59,0)-(59,1) = ":"
│ ├── value_loc: (59,1)-(59,3) = "!~"
│ ├── closing_loc: ∅
│ └── unescaped: "!~"
├── @ SymbolNode (location: (61,0)-(61,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (61,0)-(61,1) = ":"
│ ├── value_loc: (61,1)-(61,2) = "!"
│ ├── closing_loc: ∅
│ └── unescaped: "!"
├── @ SymbolNode (location: (63,0)-(63,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (63,0)-(63,1) = ":"
│ ├── value_loc: (63,1)-(63,3) = "[]"
│ ├── closing_loc: ∅
│ └── unescaped: "[]"
├── @ SymbolNode (location: (65,0)-(65,4))
+ │ ├── flags: ∅
│ ├── opening_loc: (65,0)-(65,1) = ":"
│ ├── value_loc: (65,1)-(65,4) = "[]="
│ ├── closing_loc: ∅
│ └── unescaped: "[]="
├── @ SymbolNode (location: (67,0)-(67,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (67,0)-(67,1) = ":"
│ ├── value_loc: (67,1)-(67,2) = "^"
│ ├── closing_loc: ∅
│ └── unescaped: "^"
├── @ SymbolNode (location: (69,0)-(69,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (69,0)-(69,1) = ":"
│ ├── value_loc: (69,1)-(69,3) = "=="
│ ├── closing_loc: ∅
│ └── unescaped: "=="
├── @ SymbolNode (location: (71,0)-(71,4))
+ │ ├── flags: ∅
│ ├── opening_loc: (71,0)-(71,1) = ":"
│ ├── value_loc: (71,1)-(71,4) = "==="
│ ├── closing_loc: ∅
│ └── unescaped: "==="
├── @ SymbolNode (location: (73,0)-(73,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (73,0)-(73,1) = ":"
│ ├── value_loc: (73,1)-(73,3) = "=~"
│ ├── closing_loc: ∅
│ └── unescaped: "=~"
├── @ SymbolNode (location: (75,0)-(75,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (75,0)-(75,1) = ":"
│ ├── value_loc: (75,1)-(75,3) = ">="
│ ├── closing_loc: ∅
│ └── unescaped: ">="
├── @ SymbolNode (location: (77,0)-(77,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (77,0)-(77,1) = ":"
│ ├── value_loc: (77,1)-(77,3) = ">>"
│ ├── closing_loc: ∅
│ └── unescaped: ">>"
├── @ SymbolNode (location: (79,0)-(79,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (79,0)-(79,1) = ":"
│ ├── value_loc: (79,1)-(79,2) = ">"
│ ├── closing_loc: ∅
│ └── unescaped: ">"
├── @ SymbolNode (location: (81,0)-(81,4))
+ │ ├── flags: ∅
│ ├── opening_loc: (81,0)-(81,1) = ":"
│ ├── value_loc: (81,1)-(81,4) = "<=>"
│ ├── closing_loc: ∅
│ └── unescaped: "<=>"
├── @ SymbolNode (location: (83,0)-(83,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (83,0)-(83,1) = ":"
│ ├── value_loc: (83,1)-(83,3) = "<="
│ ├── closing_loc: ∅
│ └── unescaped: "<="
├── @ SymbolNode (location: (85,0)-(85,3))
+ │ ├── flags: ∅
│ ├── opening_loc: (85,0)-(85,1) = ":"
│ ├── value_loc: (85,1)-(85,3) = "<<"
│ ├── closing_loc: ∅
│ └── unescaped: "<<"
├── @ SymbolNode (location: (87,0)-(87,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (87,0)-(87,1) = ":"
│ ├── value_loc: (87,1)-(87,2) = "<"
│ ├── closing_loc: ∅
│ └── unescaped: "<"
├── @ SymbolNode (location: (89,0)-(89,9))
+ │ ├── flags: ∅
│ ├── opening_loc: (89,0)-(89,1) = ":"
│ ├── value_loc: (89,1)-(89,9) = "__LINE__"
│ ├── closing_loc: ∅
│ └── unescaped: "__LINE__"
├── @ SymbolNode (location: (91,0)-(91,9))
+ │ ├── flags: ∅
│ ├── opening_loc: (91,0)-(91,1) = ":"
│ ├── value_loc: (91,1)-(91,9) = "__FILE__"
│ ├── closing_loc: ∅
│ └── unescaped: "__FILE__"
└── @ SymbolNode (location: (93,0)-(93,13))
+ ├── flags: ∅
├── opening_loc: (93,0)-(93,1) = ":"
├── value_loc: (93,1)-(93,13) = "__ENCODING__"
├── closing_loc: ∅
diff --git a/test/prism/snapshots/undef.txt b/test/prism/snapshots/undef.txt
index 8ab7acacec..2bb369d7d8 100644
--- a/test/prism/snapshots/undef.txt
+++ b/test/prism/snapshots/undef.txt
@@ -6,6 +6,7 @@
├── @ UndefNode (location: (1,0)-(1,7))
│ ├── names: (length: 1)
│ │ └── @ SymbolNode (location: (1,6)-(1,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,6)-(1,7) = "a"
│ │ ├── closing_loc: ∅
@@ -14,11 +15,13 @@
├── @ UndefNode (location: (3,0)-(3,10))
│ ├── names: (length: 2)
│ │ ├── @ SymbolNode (location: (3,6)-(3,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (3,6)-(3,7) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (3,9)-(3,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (3,9)-(3,10) = "b"
│ │ ├── closing_loc: ∅
@@ -27,6 +30,7 @@
├── @ UndefNode (location: (5,0)-(5,8))
│ ├── names: (length: 1)
│ │ └── @ SymbolNode (location: (5,6)-(5,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (5,6)-(5,8) = "if"
│ │ ├── closing_loc: ∅
@@ -35,6 +39,7 @@
├── @ UndefNode (location: (7,0)-(7,9))
│ ├── names: (length: 1)
│ │ └── @ SymbolNode (location: (7,6)-(7,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (7,6)-(7,9) = "<=>"
│ │ ├── closing_loc: ∅
@@ -43,6 +48,7 @@
├── @ UndefNode (location: (9,0)-(9,8))
│ ├── names: (length: 1)
│ │ └── @ SymbolNode (location: (9,6)-(9,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (9,6)-(9,7) = ":"
│ │ ├── value_loc: (9,7)-(9,8) = "a"
│ │ ├── closing_loc: ∅
@@ -51,16 +57,19 @@
├── @ UndefNode (location: (11,0)-(11,16))
│ ├── names: (length: 3)
│ │ ├── @ SymbolNode (location: (11,6)-(11,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (11,6)-(11,7) = ":"
│ │ │ ├── value_loc: (11,7)-(11,8) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ ├── @ SymbolNode (location: (11,10)-(11,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (11,10)-(11,11) = ":"
│ │ │ ├── value_loc: (11,11)-(11,12) = "b"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b"
│ │ └── @ SymbolNode (location: (11,14)-(11,16))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (11,14)-(11,15) = ":"
│ │ ├── value_loc: (11,15)-(11,16) = "c"
│ │ ├── closing_loc: ∅
@@ -69,6 +78,7 @@
├── @ UndefNode (location: (13,0)-(13,12))
│ ├── names: (length: 1)
│ │ └── @ SymbolNode (location: (13,6)-(13,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (13,6)-(13,8) = ":'"
│ │ ├── value_loc: (13,8)-(13,11) = "abc"
│ │ ├── closing_loc: (13,11)-(13,12) = "'"
@@ -98,6 +108,7 @@
└── @ UndefNode (location: (17,0)-(17,14))
├── names: (length: 1)
│ └── @ SymbolNode (location: (17,6)-(17,14))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── value_loc: (17,6)-(17,14) = "Constant"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unless.txt b/test/prism/snapshots/unless.txt
index 571f595af5..3bc3e99897 100644
--- a/test/prism/snapshots/unless.txt
+++ b/test/prism/snapshots/unless.txt
@@ -115,11 +115,13 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (14,4)-(14,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (14,4)-(14,5) = ":"
│ │ │ ├── value_loc: (14,5)-(14,6) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (14,8)-(14,10))
+ │ │ ├── flags: ∅
│ │ ├── 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 e726797685..68ee27f7f9 100644
--- a/test/prism/snapshots/unparser/corpus/literal/alias.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/alias.txt
@@ -14,12 +14,14 @@
└── @ AliasMethodNode (location: (2,0)-(2,15))
├── new_name:
│ @ SymbolNode (location: (2,6)-(2,10))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── opening_loc: (2,11)-(2,12) = ":"
│ ├── value_loc: (2,12)-(2,15) = "bar"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/literal/case.txt b/test/prism/snapshots/unparser/corpus/literal/case.txt
index 4e07760e85..a228c4af40 100644
--- a/test/prism/snapshots/unparser/corpus/literal/case.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/case.txt
@@ -225,6 +225,7 @@
│ │ @ StatementsNode (location: (20,2)-(20,8))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (20,2)-(20,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (20,2)-(20,3) = ":"
│ │ ├── value_loc: (20,3)-(20,8) = "other"
│ │ ├── closing_loc: ∅
@@ -265,6 +266,7 @@
│ │ @ StatementsNode (location: (24,2)-(24,8))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (24,2)-(24,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (24,2)-(24,3) = ":"
│ │ ├── value_loc: (24,3)-(24,8) = "value"
│ │ ├── closing_loc: ∅
@@ -318,6 +320,7 @@
│ │ │ @ StatementsNode (location: (30,2)-(30,6))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (30,2)-(30,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (30,2)-(30,3) = ":"
│ │ │ ├── value_loc: (30,3)-(30,6) = "foo"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/literal/class.txt b/test/prism/snapshots/unparser/corpus/literal/class.txt
index 6698b6ac40..b26934afbb 100644
--- a/test/prism/snapshots/unparser/corpus/literal/class.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/class.txt
@@ -202,6 +202,7 @@
│ │ │ @ StatementsNode (location: (30,4)-(30,8))
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (30,4)-(30,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (30,4)-(30,5) = ":"
│ │ │ ├── value_loc: (30,5)-(30,8) = "bar"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/literal/if.txt b/test/prism/snapshots/unparser/corpus/literal/if.txt
index cf49a6b328..7b6300b85a 100644
--- a/test/prism/snapshots/unparser/corpus/literal/if.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/if.txt
@@ -267,6 +267,7 @@
│ │ ├── name_loc: (34,2)-(34,6) = "pair"
│ │ ├── value:
│ │ │ @ SymbolNode (location: (34,9)-(34,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (34,9)-(34,10) = ":"
│ │ │ ├── value_loc: (34,10)-(34,13) = "foo"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/literal/kwbegin.txt b/test/prism/snapshots/unparser/corpus/literal/kwbegin.txt
index 75f97923ad..ed148fff8b 100644
--- a/test/prism/snapshots/unparser/corpus/literal/kwbegin.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/kwbegin.txt
@@ -479,6 +479,7 @@
│ │ @ UndefNode (location: (79,2)-(79,12))
│ │ ├── names: (length: 1)
│ │ │ └── @ SymbolNode (location: (79,8)-(79,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (79,8)-(79,9) = ":"
│ │ │ ├── value_loc: (79,9)-(79,12) = "bar"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/literal/literal.txt b/test/prism/snapshots/unparser/corpus/literal/literal.txt
index 472ecc3bed..21ae9f670b 100644
--- a/test/prism/snapshots/unparser/corpus/literal/literal.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/literal.txt
@@ -46,6 +46,7 @@
│ │ │ └── unescaped: "bar"
│ │ ├── value:
│ │ │ @ SymbolNode (location: (1,32)-(1,36))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,32)-(1,33) = ":"
│ │ │ ├── value_loc: (1,33)-(1,36) = "baz"
│ │ │ ├── closing_loc: ∅
@@ -81,6 +82,7 @@
│ │ │ └── unescaped: "bar"
│ │ ├── value:
│ │ │ @ SymbolNode (location: (4,25)-(4,29))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (4,25)-(4,26) = ":"
│ │ │ ├── value_loc: (4,26)-(4,29) = "baz"
│ │ │ ├── closing_loc: ∅
@@ -514,31 +516,37 @@
│ ├── closing_loc: (42,2)-(42,3) = "`"
│ └── unescaped: "\""
├── @ SymbolNode (location: (43,0)-(43,4))
+ │ ├── flags: ∅
│ ├── opening_loc: (43,0)-(43,1) = ":"
│ ├── value_loc: (43,1)-(43,4) = "foo"
│ ├── closing_loc: ∅
│ └── unescaped: "foo"
├── @ SymbolNode (location: (44,0)-(44,6))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── opening_loc: (45,0)-(45,1) = ":"
│ ├── value_loc: (45,1)-(45,4) = "foo"
│ ├── closing_loc: ∅
│ └── unescaped: "foo"
├── @ SymbolNode (location: (46,0)-(46,6))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── 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: ∅
│ ├── opening_loc: (48,0)-(48,2) = ":\""
│ ├── value_loc: (1,0)-(1,0) = ""
│ ├── closing_loc: (48,2)-(48,3) = "\""
@@ -907,6 +915,7 @@
│ │ ├── @ AssocNode (location: (76,2)-(76,19))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (76,2)-(76,4))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (76,2)-(76,3) = "a"
│ │ │ │ ├── closing_loc: (76,3)-(76,4) = ":"
@@ -938,6 +947,7 @@
│ │ └── @ AssocNode (location: (76,21)-(76,25))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (76,21)-(76,23))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (76,21)-(76,22) = "b"
│ │ │ ├── closing_loc: (76,22)-(76,23) = ":"
@@ -953,6 +963,7 @@
│ │ ├── @ AssocNode (location: (77,2)-(77,6))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (77,2)-(77,4))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (77,2)-(77,3) = "a"
│ │ │ │ ├── closing_loc: (77,3)-(77,4) = ":"
@@ -964,6 +975,7 @@
│ │ └── @ AssocNode (location: (77,8)-(77,12))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (77,8)-(77,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (77,8)-(77,9) = "b"
│ │ │ ├── closing_loc: (77,9)-(77,10) = ":"
@@ -979,12 +991,14 @@
│ │ └── @ AssocNode (location: (78,2)-(78,7))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (78,2)-(78,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── 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: ∅
│ │ │ ├── opening_loc: (78,5)-(78,6) = ":"
│ │ │ ├── value_loc: (78,6)-(78,7) = "a"
│ │ │ ├── closing_loc: ∅
@@ -997,6 +1011,7 @@
│ │ └── @ AssocNode (location: (79,2)-(79,13))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (79,2)-(79,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (79,2)-(79,4) = ":\""
│ │ │ ├── value_loc: (79,4)-(79,7) = "a b"
│ │ │ ├── closing_loc: (79,7)-(79,8) = "\""
@@ -1012,6 +1027,7 @@
│ │ └── @ AssocNode (location: (80,2)-(80,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (80,2)-(80,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (80,2)-(80,3) = ":"
│ │ │ ├── value_loc: (80,3)-(80,5) = "-@"
│ │ │ ├── closing_loc: ∅
@@ -1089,6 +1105,7 @@
│ ├── opening_loc: (83,4)-(83,5) = "{"
│ └── closing_loc: (86,0)-(86,1) = "}"
├── @ SymbolNode (location: (87,0)-(88,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (87,0)-(87,2) = ":\""
│ ├── value_loc: (87,2)-(88,1) = "a\\\\\nb"
│ ├── closing_loc: (88,1)-(88,2) = "\""
diff --git a/test/prism/snapshots/unparser/corpus/literal/module.txt b/test/prism/snapshots/unparser/corpus/literal/module.txt
index 205f5453ed..71621f5a29 100644
--- a/test/prism/snapshots/unparser/corpus/literal/module.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/module.txt
@@ -91,6 +91,7 @@
│ │ @ StatementsNode (location: (14,4)-(14,8))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (14,4)-(14,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (14,4)-(14,5) = ":"
│ │ ├── value_loc: (14,5)-(14,8) = "bar"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/literal/pattern.txt b/test/prism/snapshots/unparser/corpus/literal/pattern.txt
index 36f3c548ca..8aa64face6 100644
--- a/test/prism/snapshots/unparser/corpus/literal/pattern.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/pattern.txt
@@ -84,6 +84,7 @@
│ │ │ │ │ └── @ AssocNode (location: (6,5)-(6,7))
│ │ │ │ │ ├── key:
│ │ │ │ │ │ @ SymbolNode (location: (6,5)-(6,7))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ ├── value_loc: (6,5)-(6,6) = "x"
│ │ │ │ │ │ ├── closing_loc: (6,6)-(6,7) = ":"
@@ -175,6 +176,7 @@
│ │ │ │ │ ├── @ AssocNode (location: (14,4)-(14,8))
│ │ │ │ │ │ ├── key:
│ │ │ │ │ │ │ @ SymbolNode (location: (14,4)-(14,6))
+ │ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ │ ├── value_loc: (14,4)-(14,5) = "a"
│ │ │ │ │ │ │ ├── closing_loc: (14,5)-(14,6) = ":"
@@ -186,6 +188,7 @@
│ │ │ │ │ └── @ AssocNode (location: (14,10)-(14,15))
│ │ │ │ │ ├── key:
│ │ │ │ │ │ @ SymbolNode (location: (14,10)-(14,13))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ ├── value_loc: (14,10)-(14,12) = "aa"
│ │ │ │ │ │ ├── closing_loc: (14,12)-(14,13) = ":"
@@ -242,6 +245,7 @@
│ │ │ │ │ └── @ AssocNode (location: (20,4)-(20,10))
│ │ │ │ │ ├── key:
│ │ │ │ │ │ @ SymbolNode (location: (20,4)-(20,8))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── opening_loc: (20,4)-(20,5) = "\""
│ │ │ │ │ │ ├── value_loc: (20,5)-(20,6) = "a"
│ │ │ │ │ │ ├── closing_loc: (20,6)-(20,8) = "\":"
diff --git a/test/prism/snapshots/unparser/corpus/literal/send.txt b/test/prism/snapshots/unparser/corpus/literal/send.txt
index d637c84518..ccf332a384 100644
--- a/test/prism/snapshots/unparser/corpus/literal/send.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/send.txt
@@ -170,6 +170,7 @@
│ │ │ │ │ ├── equal_loc: ∅
│ │ │ │ │ └── end_keyword_loc: (17,0)-(17,3) = "end"
│ │ │ │ └── @ SymbolNode (location: (17,5)-(17,9))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (17,5)-(17,6) = ":"
│ │ │ │ ├── value_loc: (17,6)-(17,9) = "bar"
│ │ │ │ ├── closing_loc: ∅
@@ -439,6 +440,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (37,10)-(37,14))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (37,10)-(37,11) = ":"
│ │ │ │ ├── value_loc: (37,11)-(37,14) = "foo"
│ │ │ │ ├── closing_loc: ∅
@@ -542,6 +544,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (40,9)-(40,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (40,9)-(40,10) = ":"
│ │ ├── value_loc: (40,10)-(40,13) = "foo"
│ │ ├── closing_loc: ∅
@@ -1204,6 +1207,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (62,8)-(62,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (62,8)-(62,9) = ":"
│ │ ├── value_loc: (62,9)-(62,12) = "baz"
│ │ ├── closing_loc: ∅
@@ -1249,6 +1253,7 @@
│ │ └── @ AssocNode (location: (63,8)-(63,16))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (63,8)-(63,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (63,8)-(63,11) = "baz"
│ │ │ ├── closing_loc: (63,11)-(63,12) = ":"
@@ -1491,6 +1496,7 @@
│ │ │ │ └── @ AssocNode (location: (68,10)-(68,18))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (68,10)-(68,14))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (68,10)-(68,13) = "foo"
│ │ │ │ │ ├── closing_loc: (68,13)-(68,14) = ":"
@@ -1542,6 +1548,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (69,8)-(69,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (69,8)-(69,9) = ":"
│ │ ├── value_loc: (69,9)-(69,12) = "baz"
│ │ ├── closing_loc: ∅
@@ -1564,6 +1571,7 @@
│ │ └── @ AssocNode (location: (70,4)-(70,8))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (70,4)-(70,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (70,4)-(70,5) = "a"
│ │ │ ├── closing_loc: (70,5)-(70,6) = ":"
@@ -1608,6 +1616,7 @@
│ │ └── @ AssocNode (location: (71,6)-(71,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (71,6)-(71,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (71,6)-(71,7) = "a"
│ │ │ ├── closing_loc: (71,7)-(71,8) = ":"
@@ -1771,6 +1780,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (77,9)-(77,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (77,9)-(77,10) = ":"
│ │ ├── value_loc: (77,10)-(77,13) = "bar"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/literal/undef.txt b/test/prism/snapshots/unparser/corpus/literal/undef.txt
index f89eb11fe5..4133ea0a34 100644
--- a/test/prism/snapshots/unparser/corpus/literal/undef.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/undef.txt
@@ -6,6 +6,7 @@
├── @ UndefNode (location: (1,0)-(1,10))
│ ├── names: (length: 1)
│ │ └── @ SymbolNode (location: (1,6)-(1,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,6)-(1,7) = ":"
│ │ ├── value_loc: (1,7)-(1,10) = "foo"
│ │ ├── closing_loc: ∅
@@ -14,11 +15,13 @@
└── @ UndefNode (location: (2,0)-(2,16))
├── names: (length: 2)
│ ├── @ SymbolNode (location: (2,6)-(2,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (2,6)-(2,7) = ":"
│ │ ├── value_loc: (2,7)-(2,10) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ └── @ SymbolNode (location: (2,12)-(2,16))
+ │ ├── flags: ∅
│ ├── opening_loc: (2,12)-(2,13) = ":"
│ ├── value_loc: (2,13)-(2,16) = "bar"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/literal/while.txt b/test/prism/snapshots/unparser/corpus/literal/while.txt
index 0758d82127..5c1bae8281 100644
--- a/test/prism/snapshots/unparser/corpus/literal/while.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/while.txt
@@ -643,6 +643,7 @@
│ @ StatementsNode (location: (63,2)-(63,7))
│ └── body: (length: 1)
│ └── @ SymbolNode (location: (63,2)-(63,7))
+ │ ├── flags: ∅
│ ├── opening_loc: (63,2)-(63,3) = ":"
│ ├── value_loc: (63,3)-(63,7) = "body"
│ ├── closing_loc: ∅
@@ -697,6 +698,7 @@
@ StatementsNode (location: (72,2)-(72,7))
└── body: (length: 1)
└── @ SymbolNode (location: (72,2)-(72,7))
+ ├── flags: ∅
├── opening_loc: (72,2)-(72,3) = ":"
├── value_loc: (72,3)-(72,7) = "body"
├── closing_loc: ∅
diff --git a/test/prism/snapshots/unparser/corpus/semantic/undef.txt b/test/prism/snapshots/unparser/corpus/semantic/undef.txt
index ec7eb7ad3e..1578260a64 100644
--- a/test/prism/snapshots/unparser/corpus/semantic/undef.txt
+++ b/test/prism/snapshots/unparser/corpus/semantic/undef.txt
@@ -6,6 +6,7 @@
├── @ UndefNode (location: (1,0)-(1,9))
│ ├── names: (length: 1)
│ │ └── @ SymbolNode (location: (1,6)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,6)-(1,9) = "foo"
│ │ ├── closing_loc: ∅
@@ -14,11 +15,13 @@
└── @ UndefNode (location: (2,0)-(2,14))
├── names: (length: 2)
│ ├── @ SymbolNode (location: (2,6)-(2,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (2,6)-(2,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ └── @ SymbolNode (location: (2,11)-(2,14))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── value_loc: (2,11)-(2,14) = "bar"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/until.txt b/test/prism/snapshots/until.txt
index e93ddab77c..ed08d06df2 100644
--- a/test/prism/snapshots/until.txt
+++ b/test/prism/snapshots/until.txt
@@ -91,11 +91,13 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (11,4)-(11,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (11,4)-(11,5) = ":"
│ │ │ ├── value_loc: (11,5)-(11,6) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (11,8)-(11,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (11,8)-(11,9) = ":"
│ │ ├── value_loc: (11,9)-(11,10) = "b"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/while.txt b/test/prism/snapshots/while.txt
index 67c707b03b..d86d8b8033 100644
--- a/test/prism/snapshots/while.txt
+++ b/test/prism/snapshots/while.txt
@@ -91,11 +91,13 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (11,4)-(11,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (11,4)-(11,5) = ":"
│ │ │ ├── value_loc: (11,5)-(11,6) = "a"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a"
│ │ └── @ SymbolNode (location: (11,8)-(11,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (11,8)-(11,9) = ":"
│ │ ├── value_loc: (11,9)-(11,10) = "b"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/alias.txt b/test/prism/snapshots/whitequark/alias.txt
index 4a9e6727e1..6c529a3589 100644
--- a/test/prism/snapshots/whitequark/alias.txt
+++ b/test/prism/snapshots/whitequark/alias.txt
@@ -6,12 +6,14 @@
└── @ AliasMethodNode (location: (1,0)-(1,14))
├── new_name:
│ @ SymbolNode (location: (1,6)-(1,10))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── opening_loc: ∅
│ ├── value_loc: (1,11)-(1,14) = "bar"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/arg_label.txt b/test/prism/snapshots/whitequark/arg_label.txt
index 892dd882ae..4e45db5d6c 100644
--- a/test/prism/snapshots/whitequark/arg_label.txt
+++ b/test/prism/snapshots/whitequark/arg_label.txt
@@ -23,6 +23,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ SymbolNode (location: (2,2)-(2,4))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,2)-(2,3) = ":"
│ │ │ ├── value_loc: (2,3)-(2,4) = "b"
│ │ │ ├── closing_loc: ∅
@@ -57,6 +58,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ SymbolNode (location: (4,11)-(4,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (4,11)-(4,12) = ":"
│ │ │ ├── value_loc: (4,12)-(4,13) = "b"
│ │ │ ├── closing_loc: ∅
@@ -105,6 +107,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (6,8)-(6,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (6,8)-(6,9) = ":"
│ │ ├── value_loc: (6,9)-(6,10) = "b"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/args_args_assocs.txt b/test/prism/snapshots/whitequark/args_args_assocs.txt
index 479c5f551e..52a3b5c1e7 100644
--- a/test/prism/snapshots/whitequark/args_args_assocs.txt
+++ b/test/prism/snapshots/whitequark/args_args_assocs.txt
@@ -29,6 +29,7 @@
│ │ └── @ AssocNode (location: (1,9)-(1,18))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,9)-(1,13))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,9)-(1,10) = ":"
│ │ │ ├── value_loc: (1,10)-(1,13) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -65,6 +66,7 @@
│ └── @ AssocNode (location: (3,9)-(3,18))
│ ├── key:
│ │ @ SymbolNode (location: (3,9)-(3,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (3,9)-(3,10) = ":"
│ │ ├── value_loc: (3,10)-(3,13) = "foo"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/args_args_assocs_comma.txt b/test/prism/snapshots/whitequark/args_args_assocs_comma.txt
index 98e94733e9..7523d2d918 100644
--- a/test/prism/snapshots/whitequark/args_args_assocs_comma.txt
+++ b/test/prism/snapshots/whitequark/args_args_assocs_comma.txt
@@ -39,6 +39,7 @@
│ └── @ AssocNode (location: (1,9)-(1,18))
│ ├── key:
│ │ @ SymbolNode (location: (1,9)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,9)-(1,10) = ":"
│ │ ├── value_loc: (1,10)-(1,13) = "baz"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/args_assocs.txt b/test/prism/snapshots/whitequark/args_assocs.txt
index fecf1b3663..31c2827df4 100644
--- a/test/prism/snapshots/whitequark/args_assocs.txt
+++ b/test/prism/snapshots/whitequark/args_assocs.txt
@@ -19,6 +19,7 @@
│ │ └── @ AssocNode (location: (1,4)-(1,13))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,4)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,4)-(1,5) = ":"
│ │ │ ├── value_loc: (1,5)-(1,8) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -45,6 +46,7 @@
│ │ └── @ AssocNode (location: (3,4)-(3,13))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (3,4)-(3,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,4)-(3,5) = ":"
│ │ │ ├── value_loc: (3,5)-(3,8) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -95,6 +97,7 @@
│ │ └── @ AssocNode (location: (5,14)-(5,21))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,14)-(5,16))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (5,14)-(5,15) = ":"
│ │ │ ├── value_loc: (5,15)-(5,16) = "a"
│ │ │ ├── closing_loc: ∅
@@ -122,6 +125,7 @@
│ │ └── @ AssocNode (location: (7,5)-(7,14))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (7,5)-(7,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (7,5)-(7,6) = ":"
│ │ │ ├── value_loc: (7,6)-(7,9) = "bar"
│ │ │ ├── closing_loc: ∅
@@ -144,6 +148,7 @@
│ │ └── @ AssocNode (location: (9,6)-(9,16))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (9,6)-(9,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (9,6)-(9,7) = ":"
│ │ │ ├── value_loc: (9,7)-(9,10) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -166,6 +171,7 @@
│ └── @ AssocNode (location: (11,6)-(11,16))
│ ├── key:
│ │ @ SymbolNode (location: (11,6)-(11,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (11,6)-(11,7) = ":"
│ │ ├── value_loc: (11,7)-(11,10) = "foo"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/args_assocs_comma.txt b/test/prism/snapshots/whitequark/args_assocs_comma.txt
index ac9a72adbc..3cd75b7477 100644
--- a/test/prism/snapshots/whitequark/args_assocs_comma.txt
+++ b/test/prism/snapshots/whitequark/args_assocs_comma.txt
@@ -29,6 +29,7 @@
│ └── @ AssocNode (location: (1,4)-(1,13))
│ ├── key:
│ │ @ SymbolNode (location: (1,4)-(1,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,4)-(1,5) = ":"
│ │ ├── value_loc: (1,5)-(1,8) = "baz"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/args_assocs_legacy.txt b/test/prism/snapshots/whitequark/args_assocs_legacy.txt
index fecf1b3663..31c2827df4 100644
--- a/test/prism/snapshots/whitequark/args_assocs_legacy.txt
+++ b/test/prism/snapshots/whitequark/args_assocs_legacy.txt
@@ -19,6 +19,7 @@
│ │ └── @ AssocNode (location: (1,4)-(1,13))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,4)-(1,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,4)-(1,5) = ":"
│ │ │ ├── value_loc: (1,5)-(1,8) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -45,6 +46,7 @@
│ │ └── @ AssocNode (location: (3,4)-(3,13))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (3,4)-(3,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,4)-(3,5) = ":"
│ │ │ ├── value_loc: (3,5)-(3,8) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -95,6 +97,7 @@
│ │ └── @ AssocNode (location: (5,14)-(5,21))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,14)-(5,16))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (5,14)-(5,15) = ":"
│ │ │ ├── value_loc: (5,15)-(5,16) = "a"
│ │ │ ├── closing_loc: ∅
@@ -122,6 +125,7 @@
│ │ └── @ AssocNode (location: (7,5)-(7,14))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (7,5)-(7,9))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (7,5)-(7,6) = ":"
│ │ │ ├── value_loc: (7,6)-(7,9) = "bar"
│ │ │ ├── closing_loc: ∅
@@ -144,6 +148,7 @@
│ │ └── @ AssocNode (location: (9,6)-(9,16))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (9,6)-(9,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (9,6)-(9,7) = ":"
│ │ │ ├── value_loc: (9,7)-(9,10) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -166,6 +171,7 @@
│ └── @ AssocNode (location: (11,6)-(11,16))
│ ├── key:
│ │ @ SymbolNode (location: (11,6)-(11,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (11,6)-(11,7) = ":"
│ │ ├── value_loc: (11,7)-(11,10) = "foo"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/array_symbols.txt b/test/prism/snapshots/whitequark/array_symbols.txt
index dd80fe11dc..9eeaa3e69a 100644
--- a/test/prism/snapshots/whitequark/array_symbols.txt
+++ b/test/prism/snapshots/whitequark/array_symbols.txt
@@ -7,11 +7,13 @@
├── flags: ∅
├── elements: (length: 2)
│ ├── @ SymbolNode (location: (1,3)-(1,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,3)-(1,6) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ └── @ SymbolNode (location: (1,7)-(1,10))
+ │ ├── flags: ∅
│ ├── opening_loc: ∅
│ ├── value_loc: (1,7)-(1,10) = "bar"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/array_symbols_interp.txt b/test/prism/snapshots/whitequark/array_symbols_interp.txt
index a36920ba06..d10eb2c528 100644
--- a/test/prism/snapshots/whitequark/array_symbols_interp.txt
+++ b/test/prism/snapshots/whitequark/array_symbols_interp.txt
@@ -7,6 +7,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (1,3)-(1,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,3)-(1,6) = "foo"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/bug_cmdarg.txt b/test/prism/snapshots/whitequark/bug_cmdarg.txt
index ec0cd595c1..4887d808a9 100644
--- a/test/prism/snapshots/whitequark/bug_cmdarg.txt
+++ b/test/prism/snapshots/whitequark/bug_cmdarg.txt
@@ -19,6 +19,7 @@
│ │ └── @ AssocNode (location: (1,7)-(1,15))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,7)-(1,10))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,7)-(1,9) = "do"
│ │ │ ├── closing_loc: (1,9)-(1,10) = ":"
@@ -67,6 +68,7 @@
│ └── @ AssocNode (location: (5,2)-(5,26))
│ ├── key:
│ │ @ SymbolNode (location: (5,2)-(5,4))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (5,2)-(5,3) = "x"
│ │ ├── closing_loc: (5,3)-(5,4) = ":"
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 8fb885e236..4415a16551 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
@@ -15,6 +15,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (1,2)-(1,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,2)-(1,3) = ":"
│ │ │ ├── value_loc: (1,3)-(1,6) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -25,6 +26,7 @@
│ │ │ ├── @ AssocNode (location: (1,9)-(1,25))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (1,9)-(1,13))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (1,9)-(1,10) = "\""
│ │ │ │ │ ├── value_loc: (1,10)-(1,11) = "a"
│ │ │ │ │ ├── closing_loc: (1,11)-(1,13) = "\":"
@@ -51,6 +53,7 @@
│ │ │ └── @ AssocNode (location: (1,27)-(1,41))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (1,27)-(1,29))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (1,27)-(1,28) = "b"
│ │ │ │ ├── closing_loc: (1,28)-(1,29) = ":"
@@ -89,6 +92,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (3,2)-(3,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,2)-(3,3) = ":"
│ │ │ ├── value_loc: (3,3)-(3,6) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -119,6 +123,7 @@
│ │ │ └── @ AssocNode (location: (3,25)-(3,39))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (3,25)-(3,27))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (3,25)-(3,26) = "b"
│ │ │ │ ├── closing_loc: (3,26)-(3,27) = ":"
@@ -157,6 +162,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (5,2)-(5,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (5,2)-(5,3) = ":"
│ │ │ ├── value_loc: (5,3)-(5,6) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -167,6 +173,7 @@
│ │ │ ├── @ AssocNode (location: (5,9)-(5,26))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (5,9)-(5,11))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (5,9)-(5,10) = ":"
│ │ │ │ │ ├── value_loc: (5,10)-(5,11) = "a"
│ │ │ │ │ ├── closing_loc: ∅
@@ -193,6 +200,7 @@
│ │ │ └── @ AssocNode (location: (5,28)-(5,42))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (5,28)-(5,30))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (5,28)-(5,29) = "b"
│ │ │ │ ├── closing_loc: (5,29)-(5,30) = ":"
@@ -231,6 +239,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ SymbolNode (location: (7,2)-(7,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (7,2)-(7,3) = ":"
│ │ │ ├── value_loc: (7,3)-(7,6) = "foo"
│ │ │ ├── closing_loc: ∅
@@ -241,6 +250,7 @@
│ │ │ ├── @ AssocNode (location: (7,9)-(7,23))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (7,9)-(7,11))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (7,9)-(7,10) = "a"
│ │ │ │ │ ├── closing_loc: (7,10)-(7,11) = ":"
@@ -267,6 +277,7 @@
│ │ │ └── @ AssocNode (location: (7,25)-(7,39))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (7,25)-(7,27))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (7,25)-(7,26) = "b"
│ │ │ │ ├── closing_loc: (7,26)-(7,27) = ":"
@@ -305,6 +316,7 @@
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ SymbolNode (location: (9,2)-(9,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (9,2)-(9,3) = ":"
│ │ ├── value_loc: (9,3)-(9,6) = "foo"
│ │ ├── closing_loc: ∅
@@ -353,6 +365,7 @@
│ │ └── @ AssocNode (location: (9,37)-(9,51))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (9,37)-(9,39))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (9,37)-(9,38) = "b"
│ │ │ ├── closing_loc: (9,38)-(9,39) = ":"
diff --git a/test/prism/snapshots/whitequark/class_super_label.txt b/test/prism/snapshots/whitequark/class_super_label.txt
index a8a6cf54fc..519583475b 100644
--- a/test/prism/snapshots/whitequark/class_super_label.txt
+++ b/test/prism/snapshots/whitequark/class_super_label.txt
@@ -23,6 +23,7 @@
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ SymbolNode (location: (1,13)-(1,15))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,13)-(1,14) = ":"
│ │ ├── value_loc: (1,14)-(1,15) = "b"
│ │ ├── closing_loc: ∅
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 fbf1d9e8f1..2dbf537385 100644
--- a/test/prism/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt
+++ b/test/prism/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt
@@ -42,6 +42,7 @@
│ │ └── @ AssocNode (location: (1,21)-(1,35))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,21)-(1,30))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,21)-(1,29) = "from_foo"
│ │ │ ├── closing_loc: (1,29)-(1,30) = ":"
diff --git a/test/prism/snapshots/whitequark/hash_hashrocket.txt b/test/prism/snapshots/whitequark/hash_hashrocket.txt
index 5b6d1e3920..59117a7445 100644
--- a/test/prism/snapshots/whitequark/hash_hashrocket.txt
+++ b/test/prism/snapshots/whitequark/hash_hashrocket.txt
@@ -29,6 +29,7 @@
│ └── @ AssocNode (location: (3,10)-(3,23))
│ ├── key:
│ │ @ SymbolNode (location: (3,10)-(3,14))
+ │ │ ├── flags: ∅
│ │ ├── 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 b9aa76f06f..66bb06e936 100644
--- a/test/prism/snapshots/whitequark/hash_kwsplat.txt
+++ b/test/prism/snapshots/whitequark/hash_kwsplat.txt
@@ -9,6 +9,7 @@
│ ├── @ AssocNode (location: (1,2)-(1,8))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,2)-(1,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,2)-(1,5) = "foo"
│ │ │ ├── closing_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/whitequark/hash_label.txt b/test/prism/snapshots/whitequark/hash_label.txt
index 444010d4a8..4e385b7df4 100644
--- a/test/prism/snapshots/whitequark/hash_label.txt
+++ b/test/prism/snapshots/whitequark/hash_label.txt
@@ -9,6 +9,7 @@
│ └── @ AssocNode (location: (1,2)-(1,8))
│ ├── key:
│ │ @ SymbolNode (location: (1,2)-(1,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,2)-(1,5) = "foo"
│ │ ├── closing_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/whitequark/hash_label_end.txt b/test/prism/snapshots/whitequark/hash_label_end.txt
index f9d1a40692..6aa1aac055 100644
--- a/test/prism/snapshots/whitequark/hash_label_end.txt
+++ b/test/prism/snapshots/whitequark/hash_label_end.txt
@@ -55,6 +55,7 @@
│ │ └── @ AssocNode (location: (3,2)-(3,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (3,2)-(3,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,2)-(3,3) = "'"
│ │ │ ├── value_loc: (3,3)-(3,6) = "foo"
│ │ │ ├── closing_loc: (3,6)-(3,8) = "':"
@@ -70,6 +71,7 @@
│ ├── @ AssocNode (location: (5,2)-(5,10))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,2)-(5,8))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (5,2)-(5,3) = "'"
│ │ │ ├── value_loc: (5,3)-(5,6) = "foo"
│ │ │ ├── closing_loc: (5,6)-(5,8) = "':"
@@ -81,6 +83,7 @@
│ └── @ AssocNode (location: (5,12)-(5,21))
│ ├── key:
│ │ @ SymbolNode (location: (5,12)-(5,18))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (5,12)-(5,13) = "'"
│ │ ├── value_loc: (5,13)-(5,16) = "bar"
│ │ ├── closing_loc: (5,16)-(5,18) = "':"
diff --git a/test/prism/snapshots/whitequark/hash_pair_value_omission.txt b/test/prism/snapshots/whitequark/hash_pair_value_omission.txt
index ef79ece7a1..cfa0feadd4 100644
--- a/test/prism/snapshots/whitequark/hash_pair_value_omission.txt
+++ b/test/prism/snapshots/whitequark/hash_pair_value_omission.txt
@@ -9,6 +9,7 @@
│ │ └── @ AssocNode (location: (1,1)-(1,5))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,1)-(1,5))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,1)-(1,4) = "BAR"
│ │ │ ├── closing_loc: (1,4)-(1,5) = ":"
@@ -26,6 +27,7 @@
│ │ ├── @ AssocNode (location: (3,1)-(3,3))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (3,1)-(3,3))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (3,1)-(3,2) = "a"
│ │ │ │ ├── closing_loc: (3,2)-(3,3) = ":"
@@ -47,6 +49,7 @@
│ │ └── @ AssocNode (location: (3,5)-(3,7))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (3,5)-(3,7))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (3,5)-(3,6) = "b"
│ │ │ ├── closing_loc: (3,6)-(3,7) = ":"
@@ -72,6 +75,7 @@
│ └── @ AssocNode (location: (5,1)-(5,6))
│ ├── key:
│ │ @ SymbolNode (location: (5,1)-(5,6))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (5,1)-(5,5) = "puts"
│ │ ├── closing_loc: (5,5)-(5,6) = ":"
diff --git a/test/prism/snapshots/whitequark/interp_digit_var.txt b/test/prism/snapshots/whitequark/interp_digit_var.txt
index de81a942e7..e867b6bdde 100644
--- a/test/prism/snapshots/whitequark/interp_digit_var.txt
+++ b/test/prism/snapshots/whitequark/interp_digit_var.txt
@@ -19,6 +19,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (5,4)-(5,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (5,4)-(5,7) = "\#@1"
│ │ ├── closing_loc: ∅
@@ -29,6 +30,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (7,4)-(7,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (7,4)-(7,8) = "\#@@1"
│ │ ├── closing_loc: ∅
@@ -73,6 +75,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (17,5)-(17,8))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (17,5)-(17,8) = "\#@1"
│ │ ├── closing_loc: ∅
@@ -83,6 +86,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (19,5)-(19,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (19,5)-(19,9) = "\#@@1"
│ │ ├── closing_loc: ∅
@@ -114,11 +118,13 @@
│ ├── closing_loc: (27,8)-(27,9) = "}"
│ └── unescaped: "\#@@1"
├── @ SymbolNode (location: (29,1)-(29,8))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── opening_loc: (31,1)-(31,4) = "%s{"
│ ├── value_loc: (31,4)-(31,8) = "\#@@1"
│ ├── closing_loc: (31,8)-(31,9) = "}"
@@ -194,21 +200,25 @@
│ ├── closing_loc: (51,6)-(51,7) = "/"
│ └── unescaped: "\#@@1"
├── @ SymbolNode (location: (53,1)-(53,7))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── 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: ∅
│ ├── 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: ∅
│ ├── opening_loc: (59,1)-(59,3) = ":'"
│ ├── value_loc: (59,3)-(59,7) = "\#@@1"
│ ├── closing_loc: (59,7)-(59,8) = "'"
diff --git a/test/prism/snapshots/whitequark/keyword_argument_omission.txt b/test/prism/snapshots/whitequark/keyword_argument_omission.txt
index 7edc4b1aa6..04f0c87c44 100644
--- a/test/prism/snapshots/whitequark/keyword_argument_omission.txt
+++ b/test/prism/snapshots/whitequark/keyword_argument_omission.txt
@@ -19,6 +19,7 @@
│ ├── @ AssocNode (location: (1,4)-(1,6))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,4)-(1,6))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,4)-(1,5) = "a"
│ │ │ ├── closing_loc: (1,5)-(1,6) = ":"
@@ -40,6 +41,7 @@
│ └── @ AssocNode (location: (1,8)-(1,10))
│ ├── key:
│ │ @ SymbolNode (location: (1,8)-(1,10))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,8)-(1,9) = "b"
│ │ ├── closing_loc: (1,9)-(1,10) = ":"
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 e44c155edd..b1664264ac 100644
--- a/test/prism/snapshots/whitequark/lbrace_arg_after_command_args.txt
+++ b/test/prism/snapshots/whitequark/lbrace_arg_after_command_args.txt
@@ -19,6 +19,7 @@
│ │ @ StatementsNode (location: (1,5)-(1,7))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (1,5)-(1,7))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,5)-(1,6) = ":"
│ │ ├── value_loc: (1,6)-(1,7) = "a"
│ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/multiple_pattern_matches.txt b/test/prism/snapshots/whitequark/multiple_pattern_matches.txt
index 19a8eba133..856ecc8c67 100644
--- a/test/prism/snapshots/whitequark/multiple_pattern_matches.txt
+++ b/test/prism/snapshots/whitequark/multiple_pattern_matches.txt
@@ -11,6 +11,7 @@
│ │ │ └── @ AssocNode (location: (1,1)-(1,5))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (1,1)-(1,3))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (1,1)-(1,2) = "a"
│ │ │ │ ├── closing_loc: (1,2)-(1,3) = ":"
@@ -27,6 +28,7 @@
│ │ │ └── @ AssocNode (location: (1,10)-(1,12))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (1,10)-(1,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (1,10)-(1,11) = "a"
│ │ │ │ ├── closing_loc: (1,11)-(1,12) = ":"
@@ -45,6 +47,7 @@
│ │ │ └── @ AssocNode (location: (2,1)-(2,5))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,1)-(2,3))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,1)-(2,2) = "a"
│ │ │ │ ├── closing_loc: (2,2)-(2,3) = ":"
@@ -61,6 +64,7 @@
│ │ │ └── @ AssocNode (location: (2,10)-(2,12))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (2,10)-(2,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (2,10)-(2,11) = "a"
│ │ │ │ ├── closing_loc: (2,11)-(2,12) = ":"
@@ -79,6 +83,7 @@
│ │ │ └── @ AssocNode (location: (4,1)-(4,5))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (4,1)-(4,3))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (4,1)-(4,2) = "a"
│ │ │ │ ├── closing_loc: (4,2)-(4,3) = ":"
@@ -95,6 +100,7 @@
│ │ │ └── @ AssocNode (location: (4,10)-(4,12))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (4,10)-(4,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (4,10)-(4,11) = "a"
│ │ │ │ ├── closing_loc: (4,11)-(4,12) = ":"
@@ -113,6 +119,7 @@
│ │ └── @ AssocNode (location: (5,1)-(5,5))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,1)-(5,3))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (5,1)-(5,2) = "a"
│ │ │ ├── closing_loc: (5,2)-(5,3) = ":"
@@ -129,6 +136,7 @@
│ │ └── @ AssocNode (location: (5,10)-(5,12))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (5,10)-(5,12))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (5,10)-(5,11) = "a"
│ │ │ ├── closing_loc: (5,11)-(5,12) = ":"
diff --git a/test/prism/snapshots/whitequark/newline_in_hash_argument.txt b/test/prism/snapshots/whitequark/newline_in_hash_argument.txt
index 6c571bc9cc..46cbb8b1ba 100644
--- a/test/prism/snapshots/whitequark/newline_in_hash_argument.txt
+++ b/test/prism/snapshots/whitequark/newline_in_hash_argument.txt
@@ -24,6 +24,7 @@
│ │ │ │ │ └── @ AssocNode (location: (2,3)-(2,5))
│ │ │ │ │ ├── key:
│ │ │ │ │ │ @ SymbolNode (location: (2,3)-(2,5))
+ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ ├── value_loc: (2,3)-(2,4) = "a"
│ │ │ │ │ │ ├── closing_loc: (2,4)-(2,5) = ":"
@@ -49,6 +50,7 @@
│ │ │ │ └── @ AssocNode (location: (5,3)-(5,7))
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (5,3)-(5,7))
+ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (5,3)-(5,4) = "\""
│ │ │ │ │ ├── value_loc: (5,4)-(5,5) = "b"
│ │ │ │ │ ├── closing_loc: (5,5)-(5,7) = "\":"
@@ -95,6 +97,7 @@
│ │ └── @ AssocNode (location: (10,8)-(11,1))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (10,8)-(10,14))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (10,8)-(10,9) = "\""
│ │ │ ├── value_loc: (10,9)-(10,12) = "foo"
│ │ │ ├── closing_loc: (10,12)-(10,14) = "\":"
@@ -131,6 +134,7 @@
│ └── @ AssocNode (location: (13,8)-(14,1))
│ ├── key:
│ │ @ SymbolNode (location: (13,8)-(13,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (13,8)-(13,11) = "foo"
│ │ ├── closing_loc: (13,11)-(13,12) = ":"
diff --git a/test/prism/snapshots/whitequark/parser_bug_525.txt b/test/prism/snapshots/whitequark/parser_bug_525.txt
index c5c3fd6e85..bdcf61aba5 100644
--- a/test/prism/snapshots/whitequark/parser_bug_525.txt
+++ b/test/prism/snapshots/whitequark/parser_bug_525.txt
@@ -19,6 +19,7 @@
│ └── @ AssocNode (location: (1,3)-(1,11))
│ ├── key:
│ │ @ SymbolNode (location: (1,3)-(1,5))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,3)-(1,4) = ":"
│ │ ├── value_loc: (1,4)-(1,5) = "k"
│ │ ├── 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 aec7ee8f98..aac6b051b3 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
@@ -13,6 +13,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (4,3)-(5,1))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (4,3)-(5,1) = "a\\\nb"
│ │ ├── closing_loc: ∅
@@ -40,6 +41,7 @@
│ ├── flags: ∅
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (13,3)-(14,1))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (13,3)-(14,1) = "a\\\nb"
│ │ ├── closing_loc: ∅
@@ -59,6 +61,7 @@
│ ├── closing_loc: (20,1)-(20,2) = "}"
│ └── unescaped: "ab"
├── @ SymbolNode (location: (22,0)-(23,2))
+ │ ├── flags: ∅
│ ├── opening_loc: (22,0)-(22,3) = "%s{"
│ ├── value_loc: (22,3)-(23,1) = "a\\\nb"
│ ├── closing_loc: (23,1)-(23,2) = "}"
@@ -99,11 +102,13 @@
│ ├── closing_loc: (38,1)-(38,2) = "/"
│ └── unescaped: "ab"
├── @ SymbolNode (location: (40,0)-(41,2))
+ │ ├── flags: ∅
│ ├── 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: ∅
│ ├── opening_loc: (43,0)-(43,2) = ":'"
│ ├── value_loc: (43,2)-(44,1) = "a\\\nb"
│ ├── closing_loc: (44,1)-(44,2) = "'"
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 a93154df8a..dad320593a 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
@@ -69,6 +69,7 @@
│ │ │ └── @ AssocNode (location: (5,1)-(5,5))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (5,1)-(5,3))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (5,1)-(5,2) = "a"
│ │ │ │ ├── closing_loc: (5,2)-(5,3) = ":"
@@ -85,6 +86,7 @@
│ │ │ └── @ AssocNode (location: (5,10)-(5,12))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (5,10)-(5,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (5,10)-(5,11) = "a"
│ │ │ │ ├── closing_loc: (5,11)-(5,12) = ":"
@@ -106,6 +108,7 @@
│ │ │ └── @ AssocNode (location: (7,1)-(7,5))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (7,1)-(7,3))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (7,1)-(7,2) = "a"
│ │ │ │ ├── closing_loc: (7,2)-(7,3) = ":"
@@ -122,6 +125,7 @@
│ │ │ └── @ AssocNode (location: (7,10)-(7,12))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (7,10)-(7,12))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (7,10)-(7,11) = "a"
│ │ │ │ ├── closing_loc: (7,11)-(7,12) = ":"
@@ -143,12 +147,14 @@
│ │ │ └── @ AssocNode (location: (9,1)-(9,12))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (9,1)-(9,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── 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: ∅
│ │ │ │ ├── opening_loc: (9,6)-(9,7) = ":"
│ │ │ │ ├── value_loc: (9,7)-(9,12) = "value"
│ │ │ │ ├── closing_loc: ∅
@@ -162,6 +168,7 @@
│ │ │ └── @ AssocNode (location: (9,17)-(9,27))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (9,17)-(9,21))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (9,17)-(9,20) = "key"
│ │ │ │ ├── closing_loc: (9,20)-(9,21) = ":"
@@ -186,12 +193,14 @@
│ │ │ └── @ AssocNode (location: (11,1)-(11,12))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (11,1)-(11,5))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── 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: ∅
│ │ │ │ ├── opening_loc: (11,6)-(11,7) = ":"
│ │ │ │ ├── value_loc: (11,7)-(11,12) = "value"
│ │ │ │ ├── closing_loc: ∅
@@ -205,6 +214,7 @@
│ │ │ └── @ AssocNode (location: (11,17)-(11,27))
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (11,17)-(11,21))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (11,17)-(11,20) = "key"
│ │ │ │ ├── closing_loc: (11,20)-(11,21) = ":"
diff --git a/test/prism/snapshots/whitequark/ruby_bug_10279.txt b/test/prism/snapshots/whitequark/ruby_bug_10279.txt
index 3a8edf725a..cd681d8d3c 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_10279.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_10279.txt
@@ -9,6 +9,7 @@
│ └── @ AssocNode (location: (1,1)-(1,23))
│ ├── key:
│ │ @ SymbolNode (location: (1,1)-(1,3))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,1)-(1,2) = "a"
│ │ ├── closing_loc: (1,2)-(1,3) = ":"
diff --git a/test/prism/snapshots/whitequark/ruby_bug_11380.txt b/test/prism/snapshots/whitequark/ruby_bug_11380.txt
index f8c5ce23e5..59f375e822 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_11380.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_11380.txt
@@ -25,6 +25,7 @@
│ │ @ StatementsNode (location: (1,7)-(1,13))
│ │ └── body: (length: 1)
│ │ └── @ SymbolNode (location: (1,7)-(1,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,7)-(1,8) = ":"
│ │ ├── value_loc: (1,8)-(1,13) = "hello"
│ │ ├── closing_loc: ∅
@@ -34,6 +35,7 @@
│ └── @ AssocNode (location: (1,17)-(1,21))
│ ├── key:
│ │ @ SymbolNode (location: (1,17)-(1,19))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,17)-(1,18) = "a"
│ │ ├── closing_loc: (1,18)-(1,19) = ":"
diff --git a/test/prism/snapshots/whitequark/ruby_bug_11873_a.txt b/test/prism/snapshots/whitequark/ruby_bug_11873_a.txt
index 6ae376d138..d4219b3b77 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_11873_a.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_11873_a.txt
@@ -284,6 +284,7 @@
│ │ │ ├── closing_loc: (9,7)-(9,8) = ")"
│ │ │ └── block: ∅
│ │ └── @ SymbolNode (location: (9,10)-(9,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (9,10)-(9,11) = ":"
│ │ ├── value_loc: (9,11)-(9,12) = "e"
│ │ ├── closing_loc: ∅
@@ -578,6 +579,7 @@
│ │ │ ├── closing_loc: (19,8)-(19,9) = ")"
│ │ │ └── block: ∅
│ │ └── @ SymbolNode (location: (19,11)-(19,13))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (19,11)-(19,12) = ":"
│ │ ├── value_loc: (19,12)-(19,13) = "e"
│ │ ├── closing_loc: ∅
@@ -902,6 +904,7 @@
│ │ │ ├── opening_loc: (29,3)-(29,4) = "{"
│ │ │ └── closing_loc: (29,7)-(29,8) = "}"
│ │ └── @ SymbolNode (location: (29,10)-(29,12))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (29,10)-(29,11) = ":"
│ │ ├── value_loc: (29,11)-(29,12) = "e"
│ │ ├── closing_loc: ∅
@@ -1226,6 +1229,7 @@
│ │ ├── opening_loc: (39,3)-(39,4) = "{"
│ │ └── closing_loc: (39,8)-(39,9) = "}"
│ └── @ SymbolNode (location: (39,11)-(39,13))
+ │ ├── flags: ∅
│ ├── opening_loc: (39,11)-(39,12) = ":"
│ ├── value_loc: (39,12)-(39,13) = "e"
│ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_12073.txt b/test/prism/snapshots/whitequark/ruby_bug_12073.txt
index 3fcc2b5073..86be1100b7 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_12073.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_12073.txt
@@ -27,6 +27,7 @@
│ │ └── @ AssocNode (location: (1,9)-(1,13))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (1,9)-(1,11))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (1,9)-(1,10) = "b"
│ │ │ ├── closing_loc: (1,10)-(1,11) = ":"
diff --git a/test/prism/snapshots/whitequark/ruby_bug_12669.txt b/test/prism/snapshots/whitequark/ruby_bug_12669.txt
index 021be28c8a..95e438f7d5 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_12669.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_12669.txt
@@ -23,6 +23,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (1,16)-(1,18))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (1,16)-(1,17) = ":"
│ │ │ │ ├── value_loc: (1,17)-(1,18) = "x"
│ │ │ │ ├── closing_loc: ∅
@@ -56,6 +57,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (3,15)-(3,17))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (3,15)-(3,16) = ":"
│ │ │ │ ├── value_loc: (3,16)-(3,17) = "x"
│ │ │ │ ├── closing_loc: ∅
@@ -87,6 +89,7 @@
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (5,15)-(5,17))
+ │ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (5,15)-(5,16) = ":"
│ │ │ │ ├── value_loc: (5,16)-(5,17) = "x"
│ │ │ │ ├── closing_loc: ∅
@@ -119,6 +122,7 @@
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ SymbolNode (location: (7,14)-(7,16))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (7,14)-(7,15) = ":"
│ │ │ ├── value_loc: (7,15)-(7,16) = "x"
│ │ │ ├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/ruby_bug_9669.txt b/test/prism/snapshots/whitequark/ruby_bug_9669.txt
index a533ea6fad..8f6d188acd 100644
--- a/test/prism/snapshots/whitequark/ruby_bug_9669.txt
+++ b/test/prism/snapshots/whitequark/ruby_bug_9669.txt
@@ -44,6 +44,7 @@
│ │ └── @ AssocNode (location: (6,0)-(7,1))
│ │ ├── key:
│ │ │ @ SymbolNode (location: (6,0)-(6,2))
+ │ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (6,0)-(6,1) = "a"
│ │ │ ├── closing_loc: (6,1)-(6,2) = ":"
diff --git a/test/prism/snapshots/whitequark/symbol_plain.txt b/test/prism/snapshots/whitequark/symbol_plain.txt
index 95b1246d41..54c7ce1b5c 100644
--- a/test/prism/snapshots/whitequark/symbol_plain.txt
+++ b/test/prism/snapshots/whitequark/symbol_plain.txt
@@ -4,11 +4,13 @@
@ StatementsNode (location: (1,0)-(3,4))
└── body: (length: 2)
├── @ SymbolNode (location: (1,0)-(1,6))
+ │ ├── flags: ∅
│ ├── 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: ∅
├── opening_loc: (3,0)-(3,1) = ":"
├── value_loc: (3,1)-(3,4) = "foo"
├── closing_loc: ∅
diff --git a/test/prism/snapshots/whitequark/undef.txt b/test/prism/snapshots/whitequark/undef.txt
index 1012a03c57..6d0bffb289 100644
--- a/test/prism/snapshots/whitequark/undef.txt
+++ b/test/prism/snapshots/whitequark/undef.txt
@@ -6,11 +6,13 @@
└── @ UndefNode (location: (1,0)-(1,27))
├── names: (length: 3)
│ ├── @ SymbolNode (location: (1,6)-(1,9))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,6)-(1,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── @ SymbolNode (location: (1,11)-(1,15))
+ │ │ ├── flags: ∅
│ │ ├── opening_loc: (1,11)-(1,12) = ":"
│ │ ├── value_loc: (1,12)-(1,15) = "bar"
│ │ ├── closing_loc: ∅