aboutsummaryrefslogtreecommitdiffstats
path: root/test/yarp/snapshots
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2023-09-12 12:36:12 +0200
committergit <svn-admin@ruby-lang.org>2023-09-12 12:11:40 +0000
commitfe3eff08ee404dfae92f36138adb2dd51df99eb5 (patch)
tree4874e1f17041a8a94669e2ab352f609e60f4b162 /test/yarp/snapshots
parentf1c78b23313e63eb31a213cc7277b1eb206a581b (diff)
downloadruby-fe3eff08ee404dfae92f36138adb2dd51df99eb5.tar.gz
[ruby/yarp] Move the post required parameters after the rest parameter
* See https://github.com/ruby/yarp/issues/1436 https://github.com/ruby/yarp/commit/6f4e9ff940
Diffstat (limited to 'test/yarp/snapshots')
-rw-r--r--test/yarp/snapshots/blocks.txt16
-rw-r--r--test/yarp/snapshots/break.txt2
-rw-r--r--test/yarp/snapshots/if.txt6
-rw-r--r--test/yarp/snapshots/keyword_method_names.txt2
-rw-r--r--test/yarp/snapshots/lambda.txt10
-rw-r--r--test/yarp/snapshots/method_calls.txt8
-rw-r--r--test/yarp/snapshots/methods.txt62
-rw-r--r--test/yarp/snapshots/non_alphanumeric_methods.txt4
-rw-r--r--test/yarp/snapshots/procs.txt14
-rw-r--r--test/yarp/snapshots/rescue.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/TestRubyParserShared.txt4
-rw-r--r--test/yarp/snapshots/seattlerb/args_kw_block.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_arg__bare.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_arg_kwsplat.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_arg_opt_arg_block.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_arg_opt_splat.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/block_arg_optional.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_arg_scope.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_arg_scope2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_arg_splat_arg.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/block_args_kwargs.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_args_no_kwargs.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_args_opt1.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_args_opt2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_args_opt2_2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_args_opt3.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_break.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_call_defn_call_block_call.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_call_dot_op2_brace_block.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_decomp_anon_splat_arg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_decomp_arg_splat.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_decomp_arg_splat_arg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_decomp_splat.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_kw.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_kw__required.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_kwarg_lvar.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_kwarg_lvar_multiple.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_next.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_opt_arg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_opt_splat.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/block_optarg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_paren_splat.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_reg_optarg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_return.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/block_splat_reg.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/bug236.txt4
-rw-r--r--test/yarp/snapshots/seattlerb/bug_args__19.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/bug_args_masgn.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/bug_args_masgn2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/bug_masgn_right.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/case_in.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_arg_asplat_arg.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/defn_arg_forward_args.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_args_forward_args.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_forward_args.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_forward_args__no_parens.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_kwarg_env.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_kwarg_kwarg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_kwarg_lvar.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_kwarg_no_parens.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_kwarg_val.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_no_kwargs.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_oneliner.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_oneliner_eq2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_oneliner_rescue.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/defn_opt_last_arg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_opt_reg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_opt_splat_arg.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/defn_powarg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_reg_opt_reg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defn_splat_arg.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/defs_kwarg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defs_oneliner.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defs_oneliner_eq2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/defs_oneliner_rescue.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3_.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3_2.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3_3.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3__10.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3__11.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3__12.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3__6.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3__7.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3__8.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/difficult3__9.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/difficult6_.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/do_bug.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/f_kw.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/f_kw__required.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_1.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_10_1.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_10_2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_11_1.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_11_2.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_2__19.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_3.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_4.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_5.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_6.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_7_1.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_7_2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_8_1.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_8_2.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_9_1.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_args_9_2.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_kwarg.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/iter_kwarg_kwsplat.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/parse_line_call_no_args.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/parse_line_defn_complex.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/parse_line_defn_no_parens_args.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/parse_line_iter_call_no_parens.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/parse_line_iter_call_parens.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/required_kwarg_no_value.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/stabby_arg_no_paren.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt6
-rw-r--r--test/yarp/snapshots/seattlerb/stabby_block_kw.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/stabby_block_kw__required.txt2
-rw-r--r--test/yarp/snapshots/seattlerb/stabby_proc_scope.txt2
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/block.txt28
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/def.txt40
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/defs.txt2
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/dstr.txt2
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/if.txt2
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/lambda.txt8
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/since/31.txt4
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/since/32.txt4
-rw-r--r--test/yarp/snapshots/unparser/corpus/literal/while.txt6
-rw-r--r--test/yarp/snapshots/unparser/corpus/semantic/block.txt4
-rw-r--r--test/yarp/snapshots/while.txt2
-rw-r--r--test/yarp/snapshots/whitequark/anonymous_blockarg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/arg.txt4
-rw-r--r--test/yarp/snapshots/whitequark/arg_duplicate_ignored.txt4
-rw-r--r--test/yarp/snapshots/whitequark/args.txt76
-rw-r--r--test/yarp/snapshots/whitequark/blockarg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/blockargs.txt76
-rw-r--r--test/yarp/snapshots/whitequark/bug_435.txt2
-rw-r--r--test/yarp/snapshots/whitequark/bug_lambda_leakage.txt2
-rw-r--r--test/yarp/snapshots/whitequark/endless_comparison_method.txt12
-rw-r--r--test/yarp/snapshots/whitequark/endless_method.txt4
-rw-r--r--test/yarp/snapshots/whitequark/endless_method_command_syntax.txt8
-rw-r--r--test/yarp/snapshots/whitequark/endless_method_forwarded_args_legacy.txt2
-rw-r--r--test/yarp/snapshots/whitequark/forward_arg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/forward_arg_with_open_args.txt20
-rw-r--r--test/yarp/snapshots/whitequark/forward_args_legacy.txt6
-rw-r--r--test/yarp/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/forwarded_argument_with_restarg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/forwarded_kwrestarg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/forwarded_restarg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/kwarg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/kwnilarg.txt6
-rw-r--r--test/yarp/snapshots/whitequark/kwoptarg.txt2
-rw-r--r--test/yarp/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt2
-rw-r--r--test/yarp/snapshots/whitequark/kwrestarg_named.txt2
-rw-r--r--test/yarp/snapshots/whitequark/kwrestarg_unnamed.txt2
-rw-r--r--test/yarp/snapshots/whitequark/method_definition_in_while_cond.txt4
-rw-r--r--test/yarp/snapshots/whitequark/optarg.txt4
-rw-r--r--test/yarp/snapshots/whitequark/parser_bug_272.txt2
-rw-r--r--test/yarp/snapshots/whitequark/parser_bug_507.txt2
-rw-r--r--test/yarp/snapshots/whitequark/parser_bug_645.txt2
-rw-r--r--test/yarp/snapshots/whitequark/procarg0.txt4
-rw-r--r--test/yarp/snapshots/whitequark/restarg_named.txt2
-rw-r--r--test/yarp/snapshots/whitequark/restarg_unnamed.txt2
-rw-r--r--test/yarp/snapshots/whitequark/ruby_bug_10653.txt2
-rw-r--r--test/yarp/snapshots/whitequark/ruby_bug_12073.txt2
-rw-r--r--test/yarp/snapshots/whitequark/ruby_bug_15789.txt4
-rw-r--r--test/yarp/snapshots/whitequark/ruby_bug_9669.txt2
-rw-r--r--test/yarp/snapshots/whitequark/send_lambda.txt2
-rw-r--r--test/yarp/snapshots/whitequark/send_lambda_args.txt4
-rw-r--r--test/yarp/snapshots/whitequark/send_lambda_args_noparen.txt4
-rw-r--r--test/yarp/snapshots/whitequark/send_lambda_args_shadow.txt2
-rw-r--r--test/yarp/snapshots/whitequark/trailing_forward_arg.txt2
178 files changed, 411 insertions, 411 deletions
diff --git a/test/yarp/snapshots/blocks.txt b/test/yarp/snapshots/blocks.txt
index 8e8673c3c5..e4d2725d81 100644
--- a/test/yarp/snapshots/blocks.txt
+++ b/test/yarp/snapshots/blocks.txt
@@ -137,8 +137,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (57...61))
│ │ │ │ │ └── name: :memo
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -335,8 +335,8 @@
│ │ │ │ │ ├── block: ∅
│ │ │ │ │ ├── flags:
│ │ │ │ │ └── name: "[]"
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -505,8 +505,8 @@
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (267...268))
│ │ │ │ │ └── flags: decimal
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 1)
│ │ │ │ │ └── @ KeywordParameterNode (location: (270...272))
│ │ │ │ │ ├── name: :z
@@ -545,8 +545,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (286...287))
│ │ │ │ │ └── name: :x
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -584,8 +584,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (310...311))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -615,8 +615,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (326...327))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -684,8 +684,8 @@
│ │ │ │ │ @ ParametersNode (location: (365...377))
│ │ │ │ │ ├── requireds: (length: 0)
│ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── keywords: (length: 2)
│ │ │ │ │ │ ├── @ KeywordParameterNode (location: (365...369))
│ │ │ │ │ │ │ ├── name: :a
@@ -731,12 +731,12 @@
│ │ │ │ └── @ RequiredParameterNode (location: (393...396))
│ │ │ │ └── name: :bar
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (396...397))
│ │ │ │ ├── name: nil
│ │ │ │ ├── name_loc: ∅
│ │ │ │ └── operator_loc: (396...397) = ","
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/break.txt b/test/yarp/snapshots/break.txt
index afbbaff3a1..98d516157d 100644
--- a/test/yarp/snapshots/break.txt
+++ b/test/yarp/snapshots/break.txt
@@ -175,8 +175,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (152...153))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/if.txt b/test/yarp/snapshots/if.txt
index fc90061254..5b6342c701 100644
--- a/test/yarp/snapshots/if.txt
+++ b/test/yarp/snapshots/if.txt
@@ -322,8 +322,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (313...314))
│ │ │ │ │ └── name: :_
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -362,8 +362,8 @@
│ │ │ │ │ │ └── @ RequiredParameterNode (location: (343...344))
│ │ │ │ │ │ └── name: :_
│ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ └── block: ∅
@@ -399,8 +399,8 @@
│ │ │ │ │ │ │ └── @ RequiredParameterNode (location: (370...371))
│ │ │ │ │ │ │ └── name: :_
│ │ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/keyword_method_names.txt b/test/yarp/snapshots/keyword_method_names.txt
index e3d8256658..83af646047 100644
--- a/test/yarp/snapshots/keyword_method_names.txt
+++ b/test/yarp/snapshots/keyword_method_names.txt
@@ -83,8 +83,8 @@
│ │ │ └── @ RequiredParameterNode (location: (76...77))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ NoKeywordsParameterNode (location: (79...84))
diff --git a/test/yarp/snapshots/lambda.txt b/test/yarp/snapshots/lambda.txt
index bbedbfcf42..c2e7856f5b 100644
--- a/test/yarp/snapshots/lambda.txt
+++ b/test/yarp/snapshots/lambda.txt
@@ -16,8 +16,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (6...9))
│ │ │ │ └── name: :foo
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -36,8 +36,8 @@
│ │ │ @ ParametersNode (location: (19...29))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ KeywordParameterNode (location: (19...29))
│ │ │ │ ├── name: :x
@@ -85,8 +85,8 @@
│ │ │ @ ParametersNode (location: (39...47))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ KeywordParameterNode (location: (39...47))
│ │ │ │ ├── name: :a
@@ -148,8 +148,8 @@
│ │ │ │ ├── block: ∅
│ │ │ │ ├── flags: variable_call
│ │ │ │ └── name: "bar"
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -168,8 +168,8 @@
│ │ @ ParametersNode (location: (77...85))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (77...85))
│ │ │ ├── name: :foo
diff --git a/test/yarp/snapshots/method_calls.txt b/test/yarp/snapshots/method_calls.txt
index 710f0c1c88..31b4373d35 100644
--- a/test/yarp/snapshots/method_calls.txt
+++ b/test/yarp/snapshots/method_calls.txt
@@ -906,8 +906,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (416...417))
│ │ │ │ │ └── name: :b
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -1816,8 +1816,8 @@
│ │ │ │ │ │ │ └── @ RequiredParameterNode (location: (1037...1038))
│ │ │ │ │ │ │ └── name: :a
│ │ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ │ └── block: ∅
@@ -1888,8 +1888,8 @@
│ │ │ │ │ │ │ │ └── @ RequiredParameterNode (location: (1093...1094))
│ │ │ │ │ │ │ │ └── name: :a
│ │ │ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ │ │ └── block: ∅
@@ -2007,8 +2007,8 @@
│ │ │ │ │ │ └── @ RequiredParameterNode (location: (1176...1177))
│ │ │ │ │ │ └── name: :a
│ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/methods.txt b/test/yarp/snapshots/methods.txt
index 4f35e29278..6f89c81514 100644
--- a/test/yarp/snapshots/methods.txt
+++ b/test/yarp/snapshots/methods.txt
@@ -19,8 +19,8 @@
│ │ │ ├── opening_loc: (8...9) = "("
│ │ │ └── closing_loc: (17...18) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -55,6 +55,7 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (56...57))
│ │ │ └── flags: decimal
+ │ │ ├── rest: ∅
│ │ ├── posts: (length: 1)
│ │ │ └── @ RequiredDestructuredParameterNode (location: (59...69))
│ │ │ ├── parameters: (length: 2)
@@ -64,7 +65,6 @@
│ │ │ │ └── name: :bag
│ │ │ ├── opening_loc: (59...60) = "("
│ │ │ └── closing_loc: (68...69) = ")"
- │ │ ├── rest: ∅
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -176,8 +176,8 @@
│ │ @ ParametersNode (location: (151...154))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (151...154))
@@ -251,8 +251,8 @@
│ │ @ ParametersNode (location: (212...214))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (212...214))
│ │ │ ├── name: :b
@@ -281,8 +281,8 @@
│ │ @ ParametersNode (location: (235...237))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (235...237))
│ │ │ ├── name: :b
@@ -306,8 +306,8 @@
│ │ @ ParametersNode (location: (250...253))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (250...253))
@@ -331,8 +331,8 @@
│ │ @ ParametersNode (location: (266...268))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (266...268))
@@ -383,8 +383,8 @@
│ │ │ └── @ RequiredParameterNode (location: (305...306))
│ │ │ └── name: :d
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -418,8 +418,8 @@
│ │ @ ParametersNode (location: (333...341))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 2)
│ │ │ ├── @ KeywordParameterNode (location: (333...335))
│ │ │ │ ├── name: :b
@@ -449,8 +449,8 @@
│ │ @ ParametersNode (location: (353...361))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 2)
│ │ │ ├── @ KeywordParameterNode (location: (353...355))
│ │ │ │ ├── name: :b
@@ -480,8 +480,8 @@
│ │ @ ParametersNode (location: (374...384))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 2)
│ │ │ ├── @ KeywordParameterNode (location: (374...380))
│ │ │ │ ├── name: :b
@@ -530,8 +530,8 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (416...417))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -573,8 +573,8 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (449...450))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -596,8 +596,8 @@
│ │ │ └── @ RequiredParameterNode (location: (462...463))
│ │ │ └── name: :b
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -652,12 +652,12 @@
│ │ @ ParametersNode (location: (509...511))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (509...511))
│ │ │ ├── name: :b
│ │ │ ├── name_loc: (510...511) = "b"
│ │ │ └── operator_loc: (509...510) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -677,12 +677,12 @@
│ │ @ ParametersNode (location: (523...524))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (523...524))
│ │ │ ├── name: nil
│ │ │ ├── name_loc: ∅
│ │ │ └── operator_loc: (523...524) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -841,8 +841,8 @@
│ │ │ └── @ RequiredParameterNode (location: (660...663))
│ │ │ └── name: :bar
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -883,12 +883,12 @@
│ │ @ ParametersNode (location: (693...694))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (693...694))
│ │ │ ├── name: nil
│ │ │ ├── name_loc: ∅
│ │ │ └── operator_loc: (693...694) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -925,8 +925,8 @@
│ │ @ ParametersNode (location: (714...717))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (714...717))
@@ -962,8 +962,8 @@
│ │ @ ParametersNode (location: (739...742))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (739...742))
@@ -1036,8 +1036,8 @@
│ │ @ ParametersNode (location: (789...791))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -1061,8 +1061,8 @@
│ │ @ ParametersNode (location: (803...804))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -1170,8 +1170,8 @@
│ │ @ ParametersNode (location: (911...914))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (911...914))
@@ -1294,8 +1294,8 @@
│ │ @ ParametersNode (location: (990...1001))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (990...1001))
│ │ │ ├── name: :a
@@ -1334,8 +1334,8 @@
│ │ @ ParametersNode (location: (1016...1026))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (1016...1026))
│ │ │ ├── name: :a
@@ -1372,8 +1372,8 @@
│ │ @ ParametersNode (location: (1041...1050))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (1041...1050))
│ │ │ ├── name: :a
@@ -1430,8 +1430,8 @@
│ │ │ │ └── flags: exclude_end
│ │ │ ├── opening_loc: (1069...1070) = "("
│ │ │ └── closing_loc: (1076...1077) = ")"
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -1469,8 +1469,8 @@
│ │ │ │ └── flags: exclude_end
│ │ │ ├── opening_loc: (1096...1097) = "("
│ │ │ └── closing_loc: (1102...1103) = ")"
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -1508,8 +1508,8 @@
│ │ │ │ └── flags: exclude_end
│ │ │ ├── opening_loc: (1122...1123) = "("
│ │ │ └── closing_loc: (1127...1128) = ")"
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -1531,8 +1531,8 @@
│ │ │ └── @ RequiredParameterNode (location: (1146...1147))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -1600,8 +1600,8 @@
│ │ └── @ RequiredParameterNode (location: (1188...1189))
│ │ └── name: :c
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/non_alphanumeric_methods.txt b/test/yarp/snapshots/non_alphanumeric_methods.txt
index 5d07e19838..f302762167 100644
--- a/test/yarp/snapshots/non_alphanumeric_methods.txt
+++ b/test/yarp/snapshots/non_alphanumeric_methods.txt
@@ -121,8 +121,8 @@
│ │ @ ParametersNode (location: (110...113))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (110...113))
@@ -161,8 +161,8 @@
│ │ │ └── @ RequiredParameterNode (location: (138...139))
│ │ │ └── name: :b
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/procs.txt b/test/yarp/snapshots/procs.txt
index d77157f5fc..f606763157 100644
--- a/test/yarp/snapshots/procs.txt
+++ b/test/yarp/snapshots/procs.txt
@@ -16,8 +16,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (4...5))
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -141,8 +141,8 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (110...111))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 2)
│ │ │ │ ├── @ KeywordParameterNode (location: (113...115))
│ │ │ │ │ ├── name: :c
@@ -187,12 +187,12 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (142...143))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (145...147))
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (146...147) = "c"
│ │ │ │ └── operator_loc: (145...146) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 2)
│ │ │ │ ├── @ KeywordParameterNode (location: (149...151))
│ │ │ │ │ ├── name: :d
@@ -241,12 +241,12 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (184...185))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (187...189))
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (188...189) = "c"
│ │ │ │ └── operator_loc: (187...188) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 2)
│ │ │ │ ├── @ KeywordParameterNode (location: (191...193))
│ │ │ │ │ ├── name: :d
@@ -288,8 +288,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (224...225))
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -312,8 +312,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (232...233))
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -360,12 +360,12 @@
│ │ │ ├── opening_loc: (251...252) = "("
│ │ │ └── closing_loc: (256...257) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (259...261))
│ │ │ ├── name: :c
│ │ │ ├── name_loc: (260...261) = "c"
│ │ │ └── operator_loc: (259...260) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/rescue.txt b/test/yarp/snapshots/rescue.txt
index 6419dfcec7..1212498269 100644
--- a/test/yarp/snapshots/rescue.txt
+++ b/test/yarp/snapshots/rescue.txt
@@ -168,8 +168,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (165...166))
│ │ │ │ │ └── name: :x
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/TestRubyParserShared.txt b/test/yarp/snapshots/seattlerb/TestRubyParserShared.txt
index 049adae04b..d7066a7b8e 100644
--- a/test/yarp/snapshots/seattlerb/TestRubyParserShared.txt
+++ b/test/yarp/snapshots/seattlerb/TestRubyParserShared.txt
@@ -119,8 +119,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (199...200))
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -210,8 +210,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (443...444))
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/args_kw_block.txt b/test/yarp/snapshots/seattlerb/args_kw_block.txt
index 45a361514d..5485f6fc09 100644
--- a/test/yarp/snapshots/seattlerb/args_kw_block.txt
+++ b/test/yarp/snapshots/seattlerb/args_kw_block.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...14))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (6...10))
│ │ ├── name: :a
diff --git a/test/yarp/snapshots/seattlerb/block_arg__bare.txt b/test/yarp/snapshots/seattlerb/block_arg__bare.txt
index 6db709cee3..7060880e15 100644
--- a/test/yarp/snapshots/seattlerb/block_arg__bare.txt
+++ b/test/yarp/snapshots/seattlerb/block_arg__bare.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...7))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block:
diff --git a/test/yarp/snapshots/seattlerb/block_arg_kwsplat.txt b/test/yarp/snapshots/seattlerb/block_arg_kwsplat.txt
index 39e9b1bf6d..c967c38ff4 100644
--- a/test/yarp/snapshots/seattlerb/block_arg_kwsplat.txt
+++ b/test/yarp/snapshots/seattlerb/block_arg_kwsplat.txt
@@ -19,8 +19,8 @@
│ │ │ @ ParametersNode (location: (5...8))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest:
│ │ │ │ @ KeywordRestParameterNode (location: (5...8))
diff --git a/test/yarp/snapshots/seattlerb/block_arg_opt_arg_block.txt b/test/yarp/snapshots/seattlerb/block_arg_opt_arg_block.txt
index 7af1e359ff..696ad89678 100644
--- a/test/yarp/snapshots/seattlerb/block_arg_opt_arg_block.txt
+++ b/test/yarp/snapshots/seattlerb/block_arg_opt_arg_block.txt
@@ -28,10 +28,10 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (10...11))
│ │ │ │ └── flags: decimal
+ │ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (13...14))
│ │ │ │ └── name: :d
- │ │ │ ├── rest: ∅
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/block_arg_opt_splat.txt b/test/yarp/snapshots/seattlerb/block_arg_opt_splat.txt
index b064de5cc9..fe2f55f346 100644
--- a/test/yarp/snapshots/seattlerb/block_arg_opt_splat.txt
+++ b/test/yarp/snapshots/seattlerb/block_arg_opt_splat.txt
@@ -28,12 +28,12 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (12...13))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (15...17))
│ │ │ │ ├── name: :d
│ │ │ │ ├── name_loc: (16...17) = "d"
│ │ │ │ └── operator_loc: (15...16) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt b/test/yarp/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt
index 9a3c3532d0..d50a850517 100644
--- a/test/yarp/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt
+++ b/test/yarp/snapshots/seattlerb/block_arg_opt_splat_arg_block_omfg.txt
@@ -28,14 +28,14 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (10...11))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (17...18))
- │ │ │ │ └── name: :e
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (13...15))
│ │ │ │ ├── name: :d
│ │ │ │ ├── name_loc: (14...15) = "d"
│ │ │ │ └── operator_loc: (13...14) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (17...18))
+ │ │ │ │ └── name: :e
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/block_arg_optional.txt b/test/yarp/snapshots/seattlerb/block_arg_optional.txt
index eee916a6be..f29bbdffaf 100644
--- a/test/yarp/snapshots/seattlerb/block_arg_optional.txt
+++ b/test/yarp/snapshots/seattlerb/block_arg_optional.txt
@@ -26,8 +26,8 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (9...10))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_arg_scope.txt b/test/yarp/snapshots/seattlerb/block_arg_scope.txt
index 1ec87bb718..c2bbe01342 100644
--- a/test/yarp/snapshots/seattlerb/block_arg_scope.txt
+++ b/test/yarp/snapshots/seattlerb/block_arg_scope.txt
@@ -21,8 +21,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (5...6))
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_arg_scope2.txt b/test/yarp/snapshots/seattlerb/block_arg_scope2.txt
index 1472f3afe3..616d071e73 100644
--- a/test/yarp/snapshots/seattlerb/block_arg_scope2.txt
+++ b/test/yarp/snapshots/seattlerb/block_arg_scope2.txt
@@ -21,8 +21,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (4...5))
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_arg_splat_arg.txt b/test/yarp/snapshots/seattlerb/block_arg_splat_arg.txt
index 73269efb2e..049ac7538c 100644
--- a/test/yarp/snapshots/seattlerb/block_arg_splat_arg.txt
+++ b/test/yarp/snapshots/seattlerb/block_arg_splat_arg.txt
@@ -21,14 +21,14 @@
│ │ │ │ └── @ RequiredParameterNode (location: (5...6))
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (12...13))
- │ │ │ │ └── name: :d
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (8...10))
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (9...10) = "c"
│ │ │ │ └── operator_loc: (8...9) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (12...13))
+ │ │ │ │ └── name: :d
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_args_kwargs.txt b/test/yarp/snapshots/seattlerb/block_args_kwargs.txt
index fc6579174a..7dcb815048 100644
--- a/test/yarp/snapshots/seattlerb/block_args_kwargs.txt
+++ b/test/yarp/snapshots/seattlerb/block_args_kwargs.txt
@@ -19,8 +19,8 @@
│ │ │ @ ParametersNode (location: (5...13))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest:
│ │ │ │ @ KeywordRestParameterNode (location: (5...13))
diff --git a/test/yarp/snapshots/seattlerb/block_args_no_kwargs.txt b/test/yarp/snapshots/seattlerb/block_args_no_kwargs.txt
index 4c350e2fe8..9805345666 100644
--- a/test/yarp/snapshots/seattlerb/block_args_no_kwargs.txt
+++ b/test/yarp/snapshots/seattlerb/block_args_no_kwargs.txt
@@ -19,8 +19,8 @@
│ │ │ @ ParametersNode (location: (5...10))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest:
│ │ │ │ @ NoKeywordsParameterNode (location: (5...10))
diff --git a/test/yarp/snapshots/seattlerb/block_args_opt1.txt b/test/yarp/snapshots/seattlerb/block_args_opt1.txt
index b669c510bf..47f3334a36 100644
--- a/test/yarp/snapshots/seattlerb/block_args_opt1.txt
+++ b/test/yarp/snapshots/seattlerb/block_args_opt1.txt
@@ -28,8 +28,8 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (12...14))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_args_opt2.txt b/test/yarp/snapshots/seattlerb/block_args_opt2.txt
index a7323f8abe..2c6a5392b0 100644
--- a/test/yarp/snapshots/seattlerb/block_args_opt2.txt
+++ b/test/yarp/snapshots/seattlerb/block_args_opt2.txt
@@ -33,8 +33,8 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (13...14))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_args_opt2_2.txt b/test/yarp/snapshots/seattlerb/block_args_opt2_2.txt
index c6db1d9364..a4f8d51273 100644
--- a/test/yarp/snapshots/seattlerb/block_args_opt2_2.txt
+++ b/test/yarp/snapshots/seattlerb/block_args_opt2_2.txt
@@ -35,8 +35,8 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (20...22))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_args_opt3.txt b/test/yarp/snapshots/seattlerb/block_args_opt3.txt
index f7a743c5e9..52cbc52a53 100644
--- a/test/yarp/snapshots/seattlerb/block_args_opt3.txt
+++ b/test/yarp/snapshots/seattlerb/block_args_opt3.txt
@@ -35,8 +35,8 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (20...22))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/block_break.txt b/test/yarp/snapshots/seattlerb/block_break.txt
index 12da5265b9..7c8622eb0a 100644
--- a/test/yarp/snapshots/seattlerb/block_break.txt
+++ b/test/yarp/snapshots/seattlerb/block_break.txt
@@ -37,8 +37,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (18...21))
│ │ │ │ │ └── name: :bar
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_call_defn_call_block_call.txt b/test/yarp/snapshots/seattlerb/block_call_defn_call_block_call.txt
index ef1352179a..e4c5a81f80 100644
--- a/test/yarp/snapshots/seattlerb/block_call_defn_call_block_call.txt
+++ b/test/yarp/snapshots/seattlerb/block_call_defn_call_block_call.txt
@@ -21,8 +21,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (8...9))
│ │ │ │ └── name: :c
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_call_dot_op2_brace_block.txt b/test/yarp/snapshots/seattlerb/block_call_dot_op2_brace_block.txt
index f2ba566eed..2d8c96026a 100644
--- a/test/yarp/snapshots/seattlerb/block_call_dot_op2_brace_block.txt
+++ b/test/yarp/snapshots/seattlerb/block_call_dot_op2_brace_block.txt
@@ -71,8 +71,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (23...24))
│ │ │ │ └── name: :f
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt b/test/yarp/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt
index f91b3e4cf1..4c1a75578d 100644
--- a/test/yarp/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt
+++ b/test/yarp/snapshots/seattlerb/block_call_dot_op2_cmd_args_do_block.txt
@@ -83,8 +83,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (25...26))
│ │ │ │ └── name: :g
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_decomp_anon_splat_arg.txt b/test/yarp/snapshots/seattlerb/block_decomp_anon_splat_arg.txt
index 5cdc24ebfc..86dd709522 100644
--- a/test/yarp/snapshots/seattlerb/block_decomp_anon_splat_arg.txt
+++ b/test/yarp/snapshots/seattlerb/block_decomp_anon_splat_arg.txt
@@ -28,8 +28,8 @@
│ │ │ │ ├── opening_loc: (5...6) = "("
│ │ │ │ └── closing_loc: (10...11) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_decomp_arg_splat.txt b/test/yarp/snapshots/seattlerb/block_decomp_arg_splat.txt
index 06806d0113..b5e33f180d 100644
--- a/test/yarp/snapshots/seattlerb/block_decomp_arg_splat.txt
+++ b/test/yarp/snapshots/seattlerb/block_decomp_arg_splat.txt
@@ -28,8 +28,8 @@
│ │ │ │ ├── opening_loc: (5...6) = "("
│ │ │ │ └── closing_loc: (10...11) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_decomp_arg_splat_arg.txt b/test/yarp/snapshots/seattlerb/block_decomp_arg_splat_arg.txt
index 994553b86a..caad568985 100644
--- a/test/yarp/snapshots/seattlerb/block_decomp_arg_splat_arg.txt
+++ b/test/yarp/snapshots/seattlerb/block_decomp_arg_splat_arg.txt
@@ -32,8 +32,8 @@
│ │ │ │ ├── opening_loc: (5...6) = "("
│ │ │ │ └── closing_loc: (14...15) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_decomp_splat.txt b/test/yarp/snapshots/seattlerb/block_decomp_splat.txt
index bfdb479069..a9e5a5ef82 100644
--- a/test/yarp/snapshots/seattlerb/block_decomp_splat.txt
+++ b/test/yarp/snapshots/seattlerb/block_decomp_splat.txt
@@ -28,8 +28,8 @@
│ │ │ │ ├── opening_loc: (5...6) = "("
│ │ │ │ └── closing_loc: (8...9) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_kw.txt b/test/yarp/snapshots/seattlerb/block_kw.txt
index 1df66b00e3..77b7021dc1 100644
--- a/test/yarp/snapshots/seattlerb/block_kw.txt
+++ b/test/yarp/snapshots/seattlerb/block_kw.txt
@@ -19,8 +19,8 @@
│ │ │ @ ParametersNode (location: (8...12))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ KeywordParameterNode (location: (8...12))
│ │ │ │ ├── name: :k
diff --git a/test/yarp/snapshots/seattlerb/block_kw__required.txt b/test/yarp/snapshots/seattlerb/block_kw__required.txt
index ba1fb191c2..9c465f8352 100644
--- a/test/yarp/snapshots/seattlerb/block_kw__required.txt
+++ b/test/yarp/snapshots/seattlerb/block_kw__required.txt
@@ -19,8 +19,8 @@
│ │ │ @ ParametersNode (location: (9...11))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ KeywordParameterNode (location: (9...11))
│ │ │ │ ├── name: :k
diff --git a/test/yarp/snapshots/seattlerb/block_kwarg_lvar.txt b/test/yarp/snapshots/seattlerb/block_kwarg_lvar.txt
index 3c6c950a98..9b3089694e 100644
--- a/test/yarp/snapshots/seattlerb/block_kwarg_lvar.txt
+++ b/test/yarp/snapshots/seattlerb/block_kwarg_lvar.txt
@@ -19,8 +19,8 @@
│ │ │ @ ParametersNode (location: (6...14))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ KeywordParameterNode (location: (6...14))
│ │ │ │ ├── name: :kw
diff --git a/test/yarp/snapshots/seattlerb/block_kwarg_lvar_multiple.txt b/test/yarp/snapshots/seattlerb/block_kwarg_lvar_multiple.txt
index 99c85f8aed..55bd38b149 100644
--- a/test/yarp/snapshots/seattlerb/block_kwarg_lvar_multiple.txt
+++ b/test/yarp/snapshots/seattlerb/block_kwarg_lvar_multiple.txt
@@ -19,8 +19,8 @@
│ │ │ @ ParametersNode (location: (6...26))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 2)
│ │ │ │ ├── @ KeywordParameterNode (location: (6...14))
│ │ │ │ │ ├── name: :kw
diff --git a/test/yarp/snapshots/seattlerb/block_next.txt b/test/yarp/snapshots/seattlerb/block_next.txt
index 54559af38b..1507b8edb8 100644
--- a/test/yarp/snapshots/seattlerb/block_next.txt
+++ b/test/yarp/snapshots/seattlerb/block_next.txt
@@ -37,8 +37,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (17...20))
│ │ │ │ │ └── name: :bar
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_opt_arg.txt b/test/yarp/snapshots/seattlerb/block_opt_arg.txt
index 466ef7e993..3bce4414bb 100644
--- a/test/yarp/snapshots/seattlerb/block_opt_arg.txt
+++ b/test/yarp/snapshots/seattlerb/block_opt_arg.txt
@@ -26,10 +26,10 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (7...8))
│ │ │ │ └── flags: decimal
+ │ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (10...11))
│ │ │ │ └── name: :c
- │ │ │ ├── rest: ∅
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_opt_splat.txt b/test/yarp/snapshots/seattlerb/block_opt_splat.txt
index 5d792b641f..b7ad9c1a9e 100644
--- a/test/yarp/snapshots/seattlerb/block_opt_splat.txt
+++ b/test/yarp/snapshots/seattlerb/block_opt_splat.txt
@@ -26,12 +26,12 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (9...10))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (12...14))
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (13...14) = "c"
│ │ │ │ └── operator_loc: (12...13) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt b/test/yarp/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt
index f47647b2aa..80d6c52bc1 100644
--- a/test/yarp/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt
+++ b/test/yarp/snapshots/seattlerb/block_opt_splat_arg_block_omfg.txt
@@ -26,14 +26,14 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (7...8))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (14...15))
- │ │ │ │ └── name: :d
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (10...12))
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (11...12) = "c"
│ │ │ │ └── operator_loc: (10...11) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (14...15))
+ │ │ │ │ └── name: :d
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/block_optarg.txt b/test/yarp/snapshots/seattlerb/block_optarg.txt
index 60280843d1..80f5f9cac3 100644
--- a/test/yarp/snapshots/seattlerb/block_optarg.txt
+++ b/test/yarp/snapshots/seattlerb/block_optarg.txt
@@ -29,8 +29,8 @@
│ │ │ │ ├── value_loc: (10...11) = "c"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "c"
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_paren_splat.txt b/test/yarp/snapshots/seattlerb/block_paren_splat.txt
index 7252dda182..023e119128 100644
--- a/test/yarp/snapshots/seattlerb/block_paren_splat.txt
+++ b/test/yarp/snapshots/seattlerb/block_paren_splat.txt
@@ -30,8 +30,8 @@
│ │ │ │ ├── opening_loc: (5...6) = "("
│ │ │ │ └── closing_loc: (11...12) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_reg_optarg.txt b/test/yarp/snapshots/seattlerb/block_reg_optarg.txt
index 988bcb8370..68e489b0ce 100644
--- a/test/yarp/snapshots/seattlerb/block_reg_optarg.txt
+++ b/test/yarp/snapshots/seattlerb/block_reg_optarg.txt
@@ -31,8 +31,8 @@
│ │ │ │ ├── value_loc: (13...14) = "d"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "d"
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_return.txt b/test/yarp/snapshots/seattlerb/block_return.txt
index a209e2b19d..9b8cd5ed02 100644
--- a/test/yarp/snapshots/seattlerb/block_return.txt
+++ b/test/yarp/snapshots/seattlerb/block_return.txt
@@ -38,8 +38,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (19...22))
│ │ │ │ └── name: :bar
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/block_splat_reg.txt b/test/yarp/snapshots/seattlerb/block_splat_reg.txt
index 938b3cf461..28fa486f87 100644
--- a/test/yarp/snapshots/seattlerb/block_splat_reg.txt
+++ b/test/yarp/snapshots/seattlerb/block_splat_reg.txt
@@ -19,14 +19,14 @@
│ │ │ @ ParametersNode (location: (5...10))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (9...10))
- │ │ │ │ └── name: :c
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (5...7))
│ │ │ │ ├── name: :b
│ │ │ │ ├── name_loc: (6...7) = "b"
│ │ │ │ └── operator_loc: (5...6) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (9...10))
+ │ │ │ │ └── name: :c
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/bug236.txt b/test/yarp/snapshots/seattlerb/bug236.txt
index 89c892bc35..603053ce58 100644
--- a/test/yarp/snapshots/seattlerb/bug236.txt
+++ b/test/yarp/snapshots/seattlerb/bug236.txt
@@ -21,12 +21,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (3...4))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (4...5))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (4...5) = ","
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -56,8 +56,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (12...13))
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/bug_args__19.txt b/test/yarp/snapshots/seattlerb/bug_args__19.txt
index 48a0eb828e..b945c1b680 100644
--- a/test/yarp/snapshots/seattlerb/bug_args__19.txt
+++ b/test/yarp/snapshots/seattlerb/bug_args__19.txt
@@ -27,8 +27,8 @@
│ │ │ │ ├── opening_loc: (5...6) = "("
│ │ │ │ └── closing_loc: (10...11) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/bug_args_masgn.txt b/test/yarp/snapshots/seattlerb/bug_args_masgn.txt
index c64efe75ff..ff5e9f2485 100644
--- a/test/yarp/snapshots/seattlerb/bug_args_masgn.txt
+++ b/test/yarp/snapshots/seattlerb/bug_args_masgn.txt
@@ -29,8 +29,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (13...14))
│ │ │ │ └── name: :c
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/bug_args_masgn2.txt b/test/yarp/snapshots/seattlerb/bug_args_masgn2.txt
index 1405befc52..ee3e424afe 100644
--- a/test/yarp/snapshots/seattlerb/bug_args_masgn2.txt
+++ b/test/yarp/snapshots/seattlerb/bug_args_masgn2.txt
@@ -35,8 +35,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (18...19))
│ │ │ │ └── name: :d
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt b/test/yarp/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt
index 38904d86a7..e5cb3d0520 100644
--- a/test/yarp/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt
+++ b/test/yarp/snapshots/seattlerb/bug_args_masgn_outer_parens__19.txt
@@ -33,8 +33,8 @@
│ │ │ │ ├── opening_loc: (5...6) = "("
│ │ │ │ └── closing_loc: (15...16) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/bug_masgn_right.txt b/test/yarp/snapshots/seattlerb/bug_masgn_right.txt
index ab558cca6c..02d3665f46 100644
--- a/test/yarp/snapshots/seattlerb/bug_masgn_right.txt
+++ b/test/yarp/snapshots/seattlerb/bug_masgn_right.txt
@@ -29,8 +29,8 @@
│ │ │ │ ├── opening_loc: (8...9) = "("
│ │ │ │ └── closing_loc: (13...14) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/case_in.txt b/test/yarp/snapshots/seattlerb/case_in.txt
index d47725f917..01ced35723 100644
--- a/test/yarp/snapshots/seattlerb/case_in.txt
+++ b/test/yarp/snapshots/seattlerb/case_in.txt
@@ -523,8 +523,8 @@
│ │ │ │ │ │ │ │ └── @ RequiredParameterNode (location: (449...450))
│ │ │ │ │ │ │ │ └── name: :b
│ │ │ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defn_arg_asplat_arg.txt b/test/yarp/snapshots/seattlerb/defn_arg_asplat_arg.txt
index 5961b86ed4..abe438bb28 100644
--- a/test/yarp/snapshots/seattlerb/defn_arg_asplat_arg.txt
+++ b/test/yarp/snapshots/seattlerb/defn_arg_asplat_arg.txt
@@ -13,14 +13,14 @@
│ │ └── @ RequiredParameterNode (location: (9...15))
│ │ └── name: :interp
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 1)
- │ │ └── @ RequiredParameterNode (location: (20...24))
- │ │ └── name: :args
│ ├── rest:
│ │ @ RestParameterNode (location: (17...18))
│ │ ├── name: nil
│ │ ├── name_loc: ∅
│ │ └── operator_loc: (17...18) = "*"
+ │ ├── posts: (length: 1)
+ │ │ └── @ RequiredParameterNode (location: (20...24))
+ │ │ └── name: :args
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defn_arg_forward_args.txt b/test/yarp/snapshots/seattlerb/defn_arg_forward_args.txt
index 1c79d23d62..23bf76d5b4 100644
--- a/test/yarp/snapshots/seattlerb/defn_arg_forward_args.txt
+++ b/test/yarp/snapshots/seattlerb/defn_arg_forward_args.txt
@@ -13,8 +13,8 @@
│ │ └── @ RequiredParameterNode (location: (6...7))
│ │ └── name: :x
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (9...12))
diff --git a/test/yarp/snapshots/seattlerb/defn_args_forward_args.txt b/test/yarp/snapshots/seattlerb/defn_args_forward_args.txt
index e07ef6434c..bf58b1d489 100644
--- a/test/yarp/snapshots/seattlerb/defn_args_forward_args.txt
+++ b/test/yarp/snapshots/seattlerb/defn_args_forward_args.txt
@@ -17,8 +17,8 @@
│ │ └── @ RequiredParameterNode (location: (12...13))
│ │ └── name: :z
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (15...18))
diff --git a/test/yarp/snapshots/seattlerb/defn_forward_args.txt b/test/yarp/snapshots/seattlerb/defn_forward_args.txt
index 62e0019de7..394d81efc4 100644
--- a/test/yarp/snapshots/seattlerb/defn_forward_args.txt
+++ b/test/yarp/snapshots/seattlerb/defn_forward_args.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...9))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (6...9))
diff --git a/test/yarp/snapshots/seattlerb/defn_forward_args__no_parens.txt b/test/yarp/snapshots/seattlerb/defn_forward_args__no_parens.txt
index 09d7a2434b..baa57305b7 100644
--- a/test/yarp/snapshots/seattlerb/defn_forward_args__no_parens.txt
+++ b/test/yarp/snapshots/seattlerb/defn_forward_args__no_parens.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...9))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (6...9))
diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_env.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_env.txt
index 3def0b466a..a0c237f438 100644
--- a/test/yarp/snapshots/seattlerb/defn_kwarg_env.txt
+++ b/test/yarp/snapshots/seattlerb/defn_kwarg_env.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (9...18))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ KeywordRestParameterNode (location: (9...18))
diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_kwarg.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_kwarg.txt
index c4d595428b..d36409bb84 100644
--- a/test/yarp/snapshots/seattlerb/defn_kwarg_kwarg.txt
+++ b/test/yarp/snapshots/seattlerb/defn_kwarg_kwarg.txt
@@ -13,8 +13,8 @@
│ │ └── @ RequiredParameterNode (location: (6...7))
│ │ └── name: :a
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 2)
│ │ ├── @ KeywordParameterNode (location: (9...13))
│ │ │ ├── name: :b
diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat.txt
index 98bf08f7d2..87a1038a14 100644
--- a/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat.txt
+++ b/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...15))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (6...10))
│ │ ├── name: :b
diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt
index 7660c86a98..e0580a0cff 100644
--- a/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt
+++ b/test/yarp/snapshots/seattlerb/defn_kwarg_kwsplat_anon.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...14))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (6...10))
│ │ ├── name: :b
diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_lvar.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_lvar.txt
index e56ff5b6b2..aed257bc0f 100644
--- a/test/yarp/snapshots/seattlerb/defn_kwarg_lvar.txt
+++ b/test/yarp/snapshots/seattlerb/defn_kwarg_lvar.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (8...16))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (8...16))
│ │ ├── name: :kw
diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_no_parens.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_no_parens.txt
index 77eb795ca0..d5f2a3dfa4 100644
--- a/test/yarp/snapshots/seattlerb/defn_kwarg_no_parens.txt
+++ b/test/yarp/snapshots/seattlerb/defn_kwarg_no_parens.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...10))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (6...10))
│ │ ├── name: :a
diff --git a/test/yarp/snapshots/seattlerb/defn_kwarg_val.txt b/test/yarp/snapshots/seattlerb/defn_kwarg_val.txt
index 88f12486bd..9653ba489a 100644
--- a/test/yarp/snapshots/seattlerb/defn_kwarg_val.txt
+++ b/test/yarp/snapshots/seattlerb/defn_kwarg_val.txt
@@ -13,8 +13,8 @@
│ │ └── @ RequiredParameterNode (location: (6...7))
│ │ └── name: :a
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (9...12))
│ │ ├── name: :b
diff --git a/test/yarp/snapshots/seattlerb/defn_no_kwargs.txt b/test/yarp/snapshots/seattlerb/defn_no_kwargs.txt
index 85cc2e92b6..474049ab58 100644
--- a/test/yarp/snapshots/seattlerb/defn_no_kwargs.txt
+++ b/test/yarp/snapshots/seattlerb/defn_no_kwargs.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...11))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ NoKeywordsParameterNode (location: (6...11))
diff --git a/test/yarp/snapshots/seattlerb/defn_oneliner.txt b/test/yarp/snapshots/seattlerb/defn_oneliner.txt
index 3308de7fd9..274cfc231a 100644
--- a/test/yarp/snapshots/seattlerb/defn_oneliner.txt
+++ b/test/yarp/snapshots/seattlerb/defn_oneliner.txt
@@ -13,8 +13,8 @@
│ │ └── @ RequiredParameterNode (location: (9...12))
│ │ └── name: :cmd
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defn_oneliner_eq2.txt b/test/yarp/snapshots/seattlerb/defn_oneliner_eq2.txt
index 340104dc71..7bfa1bd66c 100644
--- a/test/yarp/snapshots/seattlerb/defn_oneliner_eq2.txt
+++ b/test/yarp/snapshots/seattlerb/defn_oneliner_eq2.txt
@@ -24,8 +24,8 @@
│ │ │ └── @ RequiredParameterNode (location: (17...18))
│ │ │ └── name: :o
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defn_oneliner_rescue.txt b/test/yarp/snapshots/seattlerb/defn_oneliner_rescue.txt
index f6cfcc908a..72910246fd 100644
--- a/test/yarp/snapshots/seattlerb/defn_oneliner_rescue.txt
+++ b/test/yarp/snapshots/seattlerb/defn_oneliner_rescue.txt
@@ -13,8 +13,8 @@
│ │ │ └── @ RequiredParameterNode (location: (9...12))
│ │ │ └── name: :cmd
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -70,8 +70,8 @@
│ │ │ └── @ RequiredParameterNode (location: (56...59))
│ │ │ └── name: :cmd
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -115,8 +115,8 @@
│ │ └── @ RequiredParameterNode (location: (101...104))
│ │ └── name: :cmd
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defn_opt_last_arg.txt b/test/yarp/snapshots/seattlerb/defn_opt_last_arg.txt
index a70cd123a5..1030cf23dc 100644
--- a/test/yarp/snapshots/seattlerb/defn_opt_last_arg.txt
+++ b/test/yarp/snapshots/seattlerb/defn_opt_last_arg.txt
@@ -17,8 +17,8 @@
│ │ ├── operator_loc: (10...11) = "="
│ │ └── value:
│ │ @ FalseNode (location: (12...17))
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defn_opt_reg.txt b/test/yarp/snapshots/seattlerb/defn_opt_reg.txt
index 8d0e098db7..a72e14ea27 100644
--- a/test/yarp/snapshots/seattlerb/defn_opt_reg.txt
+++ b/test/yarp/snapshots/seattlerb/defn_opt_reg.txt
@@ -17,10 +17,10 @@
│ │ ├── operator_loc: (7...8) = "="
│ │ └── value:
│ │ @ NilNode (location: (8...11))
+ │ ├── rest: ∅
│ ├── posts: (length: 1)
│ │ └── @ RequiredParameterNode (location: (13...14))
│ │ └── name: :b
- │ ├── rest: ∅
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defn_opt_splat_arg.txt b/test/yarp/snapshots/seattlerb/defn_opt_splat_arg.txt
index 1bd7420dc5..d4bb8a49d6 100644
--- a/test/yarp/snapshots/seattlerb/defn_opt_splat_arg.txt
+++ b/test/yarp/snapshots/seattlerb/defn_opt_splat_arg.txt
@@ -18,14 +18,14 @@
│ │ └── value:
│ │ @ IntegerNode (location: (11...12))
│ │ └── flags: decimal
- │ ├── posts: (length: 1)
- │ │ └── @ RequiredParameterNode (location: (18...19))
- │ │ └── name: :c
│ ├── rest:
│ │ @ RestParameterNode (location: (14...16))
│ │ ├── name: :b
│ │ ├── name_loc: (15...16) = "b"
│ │ └── operator_loc: (14...15) = "*"
+ │ ├── posts: (length: 1)
+ │ │ └── @ RequiredParameterNode (location: (18...19))
+ │ │ └── name: :c
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defn_powarg.txt b/test/yarp/snapshots/seattlerb/defn_powarg.txt
index 64ef8743d4..8310cc5e4d 100644
--- a/test/yarp/snapshots/seattlerb/defn_powarg.txt
+++ b/test/yarp/snapshots/seattlerb/defn_powarg.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...12))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ KeywordRestParameterNode (location: (6...12))
diff --git a/test/yarp/snapshots/seattlerb/defn_reg_opt_reg.txt b/test/yarp/snapshots/seattlerb/defn_reg_opt_reg.txt
index 46c6cfb8ac..9fe3deb066 100644
--- a/test/yarp/snapshots/seattlerb/defn_reg_opt_reg.txt
+++ b/test/yarp/snapshots/seattlerb/defn_reg_opt_reg.txt
@@ -23,10 +23,10 @@
│ │ ├── value_loc: (14...15) = "c"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "c"
+ │ ├── rest: ∅
│ ├── posts: (length: 1)
│ │ └── @ RequiredParameterNode (location: (17...18))
│ │ └── name: :d
- │ ├── rest: ∅
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defn_splat_arg.txt b/test/yarp/snapshots/seattlerb/defn_splat_arg.txt
index 3b316d642f..90bb0c2b26 100644
--- a/test/yarp/snapshots/seattlerb/defn_splat_arg.txt
+++ b/test/yarp/snapshots/seattlerb/defn_splat_arg.txt
@@ -11,14 +11,14 @@
│ @ ParametersNode (location: (6...10))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 1)
- │ │ └── @ RequiredParameterNode (location: (9...10))
- │ │ └── name: :a
│ ├── rest:
│ │ @ RestParameterNode (location: (6...7))
│ │ ├── name: nil
│ │ ├── name_loc: ∅
│ │ └── operator_loc: (6...7) = "*"
+ │ ├── posts: (length: 1)
+ │ │ └── @ RequiredParameterNode (location: (9...10))
+ │ │ └── name: :a
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defs_kwarg.txt b/test/yarp/snapshots/seattlerb/defs_kwarg.txt
index 7bdb344575..6ad0bdd730 100644
--- a/test/yarp/snapshots/seattlerb/defs_kwarg.txt
+++ b/test/yarp/snapshots/seattlerb/defs_kwarg.txt
@@ -12,8 +12,8 @@
│ @ ParametersNode (location: (11...15))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (11...15))
│ │ ├── name: :b
diff --git a/test/yarp/snapshots/seattlerb/defs_oneliner.txt b/test/yarp/snapshots/seattlerb/defs_oneliner.txt
index c1b53833e4..2406d3346d 100644
--- a/test/yarp/snapshots/seattlerb/defs_oneliner.txt
+++ b/test/yarp/snapshots/seattlerb/defs_oneliner.txt
@@ -14,8 +14,8 @@
│ │ └── @ RequiredParameterNode (location: (14...17))
│ │ └── name: :cmd
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defs_oneliner_eq2.txt b/test/yarp/snapshots/seattlerb/defs_oneliner_eq2.txt
index 75e4bebe92..abbe054d2d 100644
--- a/test/yarp/snapshots/seattlerb/defs_oneliner_eq2.txt
+++ b/test/yarp/snapshots/seattlerb/defs_oneliner_eq2.txt
@@ -25,8 +25,8 @@
│ │ │ └── @ RequiredParameterNode (location: (22...23))
│ │ │ └── name: :o
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/defs_oneliner_rescue.txt b/test/yarp/snapshots/seattlerb/defs_oneliner_rescue.txt
index 5939649c53..ee03a03761 100644
--- a/test/yarp/snapshots/seattlerb/defs_oneliner_rescue.txt
+++ b/test/yarp/snapshots/seattlerb/defs_oneliner_rescue.txt
@@ -14,8 +14,8 @@
│ │ │ └── @ RequiredParameterNode (location: (14...17))
│ │ │ └── name: :cmd
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -72,8 +72,8 @@
│ │ │ └── @ RequiredParameterNode (location: (66...69))
│ │ │ └── name: :cmd
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -118,8 +118,8 @@
│ │ └── @ RequiredParameterNode (location: (116...119))
│ │ └── name: :cmd
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult3_.txt b/test/yarp/snapshots/seattlerb/difficult3_.txt
index ef58921ec9..07a077488c 100644
--- a/test/yarp/snapshots/seattlerb/difficult3_.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3_.txt
@@ -32,8 +32,8 @@
│ │ │ │ ├── opening_loc: (8...9) = "("
│ │ │ │ └── closing_loc: (14...15) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult3_2.txt b/test/yarp/snapshots/seattlerb/difficult3_2.txt
index fc867265ec..0c8020cfd2 100644
--- a/test/yarp/snapshots/seattlerb/difficult3_2.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3_2.txt
@@ -19,14 +19,14 @@
│ │ │ @ ParametersNode (location: (5...10))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (9...10))
- │ │ │ │ └── name: :b
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (5...7))
│ │ │ │ ├── name: :a
│ │ │ │ ├── name_loc: (6...7) = "a"
│ │ │ │ └── operator_loc: (5...6) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (9...10))
+ │ │ │ │ └── name: :b
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult3_3.txt b/test/yarp/snapshots/seattlerb/difficult3_3.txt
index f077b4a025..87ea39482f 100644
--- a/test/yarp/snapshots/seattlerb/difficult3_3.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3_3.txt
@@ -19,14 +19,14 @@
│ │ │ @ ParametersNode (location: (5...14))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (9...10))
- │ │ │ │ └── name: :b
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (5...7))
│ │ │ │ ├── name: :a
│ │ │ │ ├── name_loc: (6...7) = "a"
│ │ │ │ └── operator_loc: (5...6) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (9...10))
+ │ │ │ │ └── name: :b
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/difficult3__10.txt b/test/yarp/snapshots/seattlerb/difficult3__10.txt
index e401090819..27295ea3cb 100644
--- a/test/yarp/snapshots/seattlerb/difficult3__10.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3__10.txt
@@ -32,8 +32,8 @@
│ │ │ │ ├── opening_loc: (8...9) = "("
│ │ │ │ └── closing_loc: (14...15) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult3__11.txt b/test/yarp/snapshots/seattlerb/difficult3__11.txt
index d2343207bb..2aa267bc96 100644
--- a/test/yarp/snapshots/seattlerb/difficult3__11.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3__11.txt
@@ -28,8 +28,8 @@
│ │ │ │ ├── opening_loc: (8...9) = "("
│ │ │ │ └── closing_loc: (10...11) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult3__12.txt b/test/yarp/snapshots/seattlerb/difficult3__12.txt
index 8223e440ca..b1f5872f99 100644
--- a/test/yarp/snapshots/seattlerb/difficult3__12.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3__12.txt
@@ -30,8 +30,8 @@
│ │ │ │ ├── opening_loc: (8...9) = "("
│ │ │ │ └── closing_loc: (13...14) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult3__6.txt b/test/yarp/snapshots/seattlerb/difficult3__6.txt
index b5b9ca334a..2fd43d7bf7 100644
--- a/test/yarp/snapshots/seattlerb/difficult3__6.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3__6.txt
@@ -34,8 +34,8 @@
│ │ │ │ ├── opening_loc: (8...9) = "("
│ │ │ │ └── closing_loc: (17...18) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult3__7.txt b/test/yarp/snapshots/seattlerb/difficult3__7.txt
index 507a777916..a6db668c17 100644
--- a/test/yarp/snapshots/seattlerb/difficult3__7.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3__7.txt
@@ -30,8 +30,8 @@
│ │ │ │ ├── opening_loc: (8...9) = "("
│ │ │ │ └── closing_loc: (13...14) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult3__8.txt b/test/yarp/snapshots/seattlerb/difficult3__8.txt
index f14db9e0f6..b3581151d3 100644
--- a/test/yarp/snapshots/seattlerb/difficult3__8.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3__8.txt
@@ -32,8 +32,8 @@
│ │ │ │ ├── opening_loc: (8...9) = "("
│ │ │ │ └── closing_loc: (16...17) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult3__9.txt b/test/yarp/snapshots/seattlerb/difficult3__9.txt
index 0adeec368d..105187f8ac 100644
--- a/test/yarp/snapshots/seattlerb/difficult3__9.txt
+++ b/test/yarp/snapshots/seattlerb/difficult3__9.txt
@@ -30,8 +30,8 @@
│ │ │ │ ├── opening_loc: (8...9) = "("
│ │ │ │ └── closing_loc: (11...12) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/difficult6_.txt b/test/yarp/snapshots/seattlerb/difficult6_.txt
index 8a8bc9e344..fdc213acf4 100644
--- a/test/yarp/snapshots/seattlerb/difficult6_.txt
+++ b/test/yarp/snapshots/seattlerb/difficult6_.txt
@@ -22,8 +22,8 @@
│ │ │ ├── operator_loc: (7...8) = "="
│ │ │ └── value:
│ │ │ @ NilNode (location: (8...11))
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/do_bug.txt b/test/yarp/snapshots/seattlerb/do_bug.txt
index 643f4df04a..8bdab4cffa 100644
--- a/test/yarp/snapshots/seattlerb/do_bug.txt
+++ b/test/yarp/snapshots/seattlerb/do_bug.txt
@@ -45,8 +45,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (12...13))
│ │ │ │ └── name: :c
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/f_kw.txt b/test/yarp/snapshots/seattlerb/f_kw.txt
index e5b3ae1373..ae569e9a9a 100644
--- a/test/yarp/snapshots/seattlerb/f_kw.txt
+++ b/test/yarp/snapshots/seattlerb/f_kw.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...10))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (6...10))
│ │ ├── name: :k
diff --git a/test/yarp/snapshots/seattlerb/f_kw__required.txt b/test/yarp/snapshots/seattlerb/f_kw__required.txt
index 4a1a554037..086c555d77 100644
--- a/test/yarp/snapshots/seattlerb/f_kw__required.txt
+++ b/test/yarp/snapshots/seattlerb/f_kw__required.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...8))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (6...8))
│ │ ├── name: :k
diff --git a/test/yarp/snapshots/seattlerb/iter_args_1.txt b/test/yarp/snapshots/seattlerb/iter_args_1.txt
index e01eab5038..9c3efc966a 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_1.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_1.txt
@@ -23,8 +23,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (7...8))
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_10_1.txt b/test/yarp/snapshots/seattlerb/iter_args_10_1.txt
index b75f3a4c1f..243a0c6fbf 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_10_1.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_10_1.txt
@@ -28,12 +28,12 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (12...14))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (16...18))
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (17...18) = "c"
│ │ │ │ └── operator_loc: (16...17) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_10_2.txt b/test/yarp/snapshots/seattlerb/iter_args_10_2.txt
index 5e562abb5d..3df6af236b 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_10_2.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_10_2.txt
@@ -28,12 +28,12 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (12...14))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (16...18))
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (17...18) = "c"
│ │ │ │ └── operator_loc: (16...17) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/iter_args_11_1.txt b/test/yarp/snapshots/seattlerb/iter_args_11_1.txt
index 8c91eb6465..1b0489691f 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_11_1.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_11_1.txt
@@ -28,14 +28,14 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (12...14))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (20...21))
- │ │ │ │ └── name: :d
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (16...18))
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (17...18) = "c"
│ │ │ │ └── operator_loc: (16...17) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (20...21))
+ │ │ │ │ └── name: :d
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_11_2.txt b/test/yarp/snapshots/seattlerb/iter_args_11_2.txt
index 2d458923b7..7c4a8c483f 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_11_2.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_11_2.txt
@@ -28,14 +28,14 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (12...14))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (20...21))
- │ │ │ │ └── name: :d
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (16...18))
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (17...18) = "c"
│ │ │ │ └── operator_loc: (16...17) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (20...21))
+ │ │ │ │ └── name: :d
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/iter_args_2__19.txt b/test/yarp/snapshots/seattlerb/iter_args_2__19.txt
index 85798d3258..272b79db1a 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_2__19.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_2__19.txt
@@ -27,8 +27,8 @@
│ │ │ │ ├── opening_loc: (5...6) = "("
│ │ │ │ └── closing_loc: (10...11) = ")"
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_3.txt b/test/yarp/snapshots/seattlerb/iter_args_3.txt
index 4251dd1e94..12e9944cc0 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_3.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_3.txt
@@ -31,8 +31,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (16...17))
│ │ │ │ └── name: :d
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_4.txt b/test/yarp/snapshots/seattlerb/iter_args_4.txt
index 08a38c214f..a884a6f803 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_4.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_4.txt
@@ -21,14 +21,14 @@
│ │ │ │ └── @ RequiredParameterNode (location: (5...6))
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (12...13))
- │ │ │ │ └── name: :c
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (8...10))
│ │ │ │ ├── name: :b
│ │ │ │ ├── name_loc: (9...10) = "b"
│ │ │ │ └── operator_loc: (8...9) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (12...13))
+ │ │ │ │ └── name: :c
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_5.txt b/test/yarp/snapshots/seattlerb/iter_args_5.txt
index 6754bacb32..205ea25e35 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_5.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_5.txt
@@ -21,8 +21,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (5...6))
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/iter_args_6.txt b/test/yarp/snapshots/seattlerb/iter_args_6.txt
index ef0713274c..a980cbce44 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_6.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_6.txt
@@ -28,10 +28,10 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (10...12))
│ │ │ │ └── flags: decimal
+ │ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (14...15))
│ │ │ │ └── name: :c
- │ │ │ ├── rest: ∅
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_7_1.txt b/test/yarp/snapshots/seattlerb/iter_args_7_1.txt
index b3106e95f1..0acdb0b587 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_7_1.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_7_1.txt
@@ -26,12 +26,12 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (9...11))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (13...15))
│ │ │ │ ├── name: :b
│ │ │ │ ├── name_loc: (14...15) = "b"
│ │ │ │ └── operator_loc: (13...14) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_7_2.txt b/test/yarp/snapshots/seattlerb/iter_args_7_2.txt
index afa860e516..5f7c3a2beb 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_7_2.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_7_2.txt
@@ -26,12 +26,12 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (9...11))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (13...15))
│ │ │ │ ├── name: :b
│ │ │ │ ├── name_loc: (14...15) = "b"
│ │ │ │ └── operator_loc: (13...14) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/iter_args_8_1.txt b/test/yarp/snapshots/seattlerb/iter_args_8_1.txt
index 6b92f92dcd..78118d6373 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_8_1.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_8_1.txt
@@ -26,14 +26,14 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (9...11))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (17...18))
- │ │ │ │ └── name: :c
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (13...15))
│ │ │ │ ├── name: :b
│ │ │ │ ├── name_loc: (14...15) = "b"
│ │ │ │ └── operator_loc: (13...14) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (17...18))
+ │ │ │ │ └── name: :c
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_8_2.txt b/test/yarp/snapshots/seattlerb/iter_args_8_2.txt
index 3459239d3a..166eccb064 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_8_2.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_8_2.txt
@@ -26,14 +26,14 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (9...11))
│ │ │ │ └── flags: decimal
- │ │ │ ├── posts: (length: 1)
- │ │ │ │ └── @ RequiredParameterNode (location: (17...18))
- │ │ │ │ └── name: :c
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (13...15))
│ │ │ │ ├── name: :b
│ │ │ │ ├── name_loc: (14...15) = "b"
│ │ │ │ └── operator_loc: (13...14) = "*"
+ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ └── @ RequiredParameterNode (location: (17...18))
+ │ │ │ │ └── name: :c
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/iter_args_9_1.txt b/test/yarp/snapshots/seattlerb/iter_args_9_1.txt
index 5b0be2a03a..945aa84b2d 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_9_1.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_9_1.txt
@@ -26,10 +26,10 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (9...11))
│ │ │ │ └── flags: decimal
+ │ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (13...14))
│ │ │ │ └── name: :b
- │ │ │ ├── rest: ∅
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/iter_args_9_2.txt b/test/yarp/snapshots/seattlerb/iter_args_9_2.txt
index 0676d81c27..f9323b6a69 100644
--- a/test/yarp/snapshots/seattlerb/iter_args_9_2.txt
+++ b/test/yarp/snapshots/seattlerb/iter_args_9_2.txt
@@ -26,10 +26,10 @@
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (9...11))
│ │ │ │ └── flags: decimal
+ │ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (13...14))
│ │ │ │ └── name: :b
- │ │ │ ├── rest: ∅
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/iter_kwarg.txt b/test/yarp/snapshots/seattlerb/iter_kwarg.txt
index 11af8366ea..d65ee0df31 100644
--- a/test/yarp/snapshots/seattlerb/iter_kwarg.txt
+++ b/test/yarp/snapshots/seattlerb/iter_kwarg.txt
@@ -19,8 +19,8 @@
│ │ │ @ ParametersNode (location: (5...9))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ KeywordParameterNode (location: (5...9))
│ │ │ │ ├── name: :b
diff --git a/test/yarp/snapshots/seattlerb/iter_kwarg_kwsplat.txt b/test/yarp/snapshots/seattlerb/iter_kwarg_kwsplat.txt
index 0d5b3e0a3b..e2b4d8f714 100644
--- a/test/yarp/snapshots/seattlerb/iter_kwarg_kwsplat.txt
+++ b/test/yarp/snapshots/seattlerb/iter_kwarg_kwsplat.txt
@@ -19,8 +19,8 @@
│ │ │ @ ParametersNode (location: (5...14))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ KeywordParameterNode (location: (5...9))
│ │ │ │ ├── name: :b
diff --git a/test/yarp/snapshots/seattlerb/parse_line_call_no_args.txt b/test/yarp/snapshots/seattlerb/parse_line_call_no_args.txt
index 042c6a97c6..7082af0271 100644
--- a/test/yarp/snapshots/seattlerb/parse_line_call_no_args.txt
+++ b/test/yarp/snapshots/seattlerb/parse_line_call_no_args.txt
@@ -23,8 +23,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (9...10))
│ │ │ │ └── name: :y
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/parse_line_defn_complex.txt b/test/yarp/snapshots/seattlerb/parse_line_defn_complex.txt
index b624f1a99e..c9fbf7ca7f 100644
--- a/test/yarp/snapshots/seattlerb/parse_line_defn_complex.txt
+++ b/test/yarp/snapshots/seattlerb/parse_line_defn_complex.txt
@@ -13,8 +13,8 @@
│ │ └── @ RequiredParameterNode (location: (6...7))
│ │ └── name: :y
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens_args.txt b/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens_args.txt
index 958d09cdb8..b9cc8ee62b 100644
--- a/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens_args.txt
+++ b/test/yarp/snapshots/seattlerb/parse_line_defn_no_parens_args.txt
@@ -13,8 +13,8 @@
│ │ └── @ RequiredParameterNode (location: (6...7))
│ │ └── name: :a
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/parse_line_iter_call_no_parens.txt b/test/yarp/snapshots/seattlerb/parse_line_iter_call_no_parens.txt
index 124e008689..6fadb22f9a 100644
--- a/test/yarp/snapshots/seattlerb/parse_line_iter_call_no_parens.txt
+++ b/test/yarp/snapshots/seattlerb/parse_line_iter_call_no_parens.txt
@@ -35,8 +35,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (11...12))
│ │ │ │ └── name: :y
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/parse_line_iter_call_parens.txt b/test/yarp/snapshots/seattlerb/parse_line_iter_call_parens.txt
index 4ead8a0f18..e45fae65d2 100644
--- a/test/yarp/snapshots/seattlerb/parse_line_iter_call_parens.txt
+++ b/test/yarp/snapshots/seattlerb/parse_line_iter_call_parens.txt
@@ -35,8 +35,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (12...13))
│ │ │ │ └── name: :y
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/required_kwarg_no_value.txt b/test/yarp/snapshots/seattlerb/required_kwarg_no_value.txt
index cd7a4ac0d1..706e51cb82 100644
--- a/test/yarp/snapshots/seattlerb/required_kwarg_no_value.txt
+++ b/test/yarp/snapshots/seattlerb/required_kwarg_no_value.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...12))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 2)
│ │ ├── @ KeywordParameterNode (location: (6...8))
│ │ │ ├── name: :a
diff --git a/test/yarp/snapshots/seattlerb/stabby_arg_no_paren.txt b/test/yarp/snapshots/seattlerb/stabby_arg_no_paren.txt
index 51bc081644..6086d83a62 100644
--- a/test/yarp/snapshots/seattlerb/stabby_arg_no_paren.txt
+++ b/test/yarp/snapshots/seattlerb/stabby_arg_no_paren.txt
@@ -16,8 +16,8 @@
│ │ │ └── @ RequiredParameterNode (location: (2...3))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt b/test/yarp/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt
index beeda8c5fc..8966fde7cb 100644
--- a/test/yarp/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt
+++ b/test/yarp/snapshots/seattlerb/stabby_arg_opt_splat_arg_block_omfg.txt
@@ -23,14 +23,14 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (8...9))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 1)
- │ │ │ └── @ RequiredParameterNode (location: (15...16))
- │ │ │ └── name: :e
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (11...13))
│ │ │ ├── name: :d
│ │ │ ├── name_loc: (12...13) = "d"
│ │ │ └── operator_loc: (11...12) = "*"
+ │ │ ├── posts: (length: 1)
+ │ │ │ └── @ RequiredParameterNode (location: (15...16))
+ │ │ │ └── name: :e
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
diff --git a/test/yarp/snapshots/seattlerb/stabby_block_kw.txt b/test/yarp/snapshots/seattlerb/stabby_block_kw.txt
index 8c52c17eff..d45d4c04ef 100644
--- a/test/yarp/snapshots/seattlerb/stabby_block_kw.txt
+++ b/test/yarp/snapshots/seattlerb/stabby_block_kw.txt
@@ -14,8 +14,8 @@
│ │ @ ParametersNode (location: (4...8))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (4...8))
│ │ │ ├── name: :k
diff --git a/test/yarp/snapshots/seattlerb/stabby_block_kw__required.txt b/test/yarp/snapshots/seattlerb/stabby_block_kw__required.txt
index 5cd0f0f9da..19d19d8e0d 100644
--- a/test/yarp/snapshots/seattlerb/stabby_block_kw__required.txt
+++ b/test/yarp/snapshots/seattlerb/stabby_block_kw__required.txt
@@ -14,8 +14,8 @@
│ │ @ ParametersNode (location: (4...6))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (4...6))
│ │ │ ├── name: :k
diff --git a/test/yarp/snapshots/seattlerb/stabby_proc_scope.txt b/test/yarp/snapshots/seattlerb/stabby_proc_scope.txt
index bc4092827f..45702e5b35 100644
--- a/test/yarp/snapshots/seattlerb/stabby_proc_scope.txt
+++ b/test/yarp/snapshots/seattlerb/stabby_proc_scope.txt
@@ -16,8 +16,8 @@
│ │ │ └── @ RequiredParameterNode (location: (3...4))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/unparser/corpus/literal/block.txt b/test/yarp/snapshots/unparser/corpus/literal/block.txt
index bcaa21860a..2e813d18d4 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/block.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/block.txt
@@ -37,8 +37,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (15...16))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -68,12 +68,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (27...28))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (28...29))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (28...29) = ","
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -103,12 +103,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (40...41))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (41...42))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (41...42) = ","
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -142,8 +142,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (59...60))
│ │ │ │ │ └── name: :b
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -196,12 +196,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (88...89))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (91...93))
│ │ │ │ │ ├── name: :b
│ │ │ │ │ ├── name_loc: (92...93) = "b"
│ │ │ │ │ └── operator_loc: (91...92) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -234,12 +234,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (110...111))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (113...114))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (113...114) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -318,8 +318,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (157...158))
│ │ │ │ │ └── name: :c
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -369,12 +369,12 @@
│ │ │ │ @ ParametersNode (location: (177...179))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (177...179))
│ │ │ │ │ ├── name: :a
│ │ │ │ │ ├── name_loc: (178...179) = "a"
│ │ │ │ │ └── operator_loc: (177...178) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -416,8 +416,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (197...198))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -492,12 +492,12 @@
│ │ │ │ @ ParametersNode (location: (237...238))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (237...238))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (237...238) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -554,8 +554,8 @@
│ │ │ │ │ ├── opening_loc: (257...258) = "("
│ │ │ │ │ └── closing_loc: (259...260) = ")"
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -616,8 +616,8 @@
│ │ │ │ │ ├── opening_loc: (279...280) = "("
│ │ │ │ │ └── closing_loc: (283...284) = ")"
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -680,8 +680,8 @@
│ │ │ │ │ ├── opening_loc: (303...304) = "("
│ │ │ │ │ └── closing_loc: (310...311) = ")"
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -739,8 +739,8 @@
│ │ │ │ │ ├── opening_loc: (330...331) = "("
│ │ │ │ │ └── closing_loc: (335...336) = ")"
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/unparser/corpus/literal/def.txt b/test/yarp/snapshots/unparser/corpus/literal/def.txt
index c71e4ea7da..44633a5a0f 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/def.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/def.txt
@@ -191,8 +191,8 @@
│ │ @ ParametersNode (location: (113...123))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 2)
│ │ │ ├── @ KeywordParameterNode (location: (113...117))
│ │ │ │ ├── name: :bar
@@ -426,8 +426,8 @@
│ │ │ └── @ RequiredParameterNode (location: (279...282))
│ │ │ └── name: :bar
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -456,8 +456,8 @@
│ │ │ └── @ RequiredParameterNode (location: (308...311))
│ │ │ └── name: :baz
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -491,8 +491,8 @@
│ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (338...339) = "("
│ │ │ └── closing_loc: (339...340) = ")"
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -539,8 +539,8 @@
│ │ │ │ └── @ NilNode (location: (373...376))
│ │ │ ├── opening_loc: (367...368) = "("
│ │ │ └── closing_loc: (376...377) = ")"
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -566,8 +566,8 @@
│ │ │ ├── operator_loc: (396...397) = "="
│ │ │ └── value:
│ │ │ @ TrueNode (location: (398...402))
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -600,8 +600,8 @@
│ │ │ ├── operator_loc: (432...433) = "="
│ │ │ └── value:
│ │ │ @ TrueNode (location: (434...438))
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -626,8 +626,8 @@
│ │ @ ParametersNode (location: (459...465))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (459...465))
│ │ │ ├── name: :bar
@@ -653,8 +653,8 @@
│ │ @ ParametersNode (location: (480...488))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (480...488))
│ │ │ ├── name: :bar
@@ -688,8 +688,8 @@
│ │ @ ParametersNode (location: (503...513))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (503...513))
│ │ │ ├── name: :bar
@@ -723,12 +723,12 @@
│ │ @ ParametersNode (location: (528...529))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (528...529))
│ │ │ ├── name: nil
│ │ │ ├── name_loc: ∅
│ │ │ └── operator_loc: (528...529) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -760,12 +760,12 @@
│ │ @ ParametersNode (location: (550...554))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (550...554))
│ │ │ ├── name: :bar
│ │ │ ├── name_loc: (551...554) = "bar"
│ │ │ └── operator_loc: (550...551) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -792,12 +792,12 @@
│ │ │ └── @ RequiredParameterNode (location: (575...578))
│ │ │ └── name: :bar
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (580...584))
│ │ │ ├── name: :baz
│ │ │ ├── name_loc: (581...584) = "baz"
│ │ │ └── operator_loc: (580...581) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -828,12 +828,12 @@
│ │ │ ├── operator_loc: (609...610) = "="
│ │ │ └── value:
│ │ │ @ TrueNode (location: (611...615))
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (617...621))
│ │ │ ├── name: :bor
│ │ │ ├── name_loc: (618...621) = "bor"
│ │ │ └── operator_loc: (617...618) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -871,12 +871,12 @@
│ │ │ ├── operator_loc: (646...647) = "="
│ │ │ └── value:
│ │ │ @ TrueNode (location: (648...652))
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (654...658))
│ │ │ ├── name: :bor
│ │ │ ├── name_loc: (655...658) = "bor"
│ │ │ └── operator_loc: (654...655) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -920,12 +920,12 @@
│ │ │ ├── operator_loc: (696...697) = "="
│ │ │ └── value:
│ │ │ @ TrueNode (location: (698...702))
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (704...708))
│ │ │ ├── name: :bor
│ │ │ ├── name_loc: (705...708) = "bor"
│ │ │ └── operator_loc: (704...705) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -950,8 +950,8 @@
│ │ @ ParametersNode (location: (729...735))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -989,8 +989,8 @@
│ │ │ └── @ RequiredParameterNode (location: (756...759))
│ │ │ └── name: :bar
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -1064,8 +1064,8 @@
│ │ │ ├── opening_loc: (811...812) = "("
│ │ │ └── closing_loc: (815...816) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -1085,8 +1085,8 @@
│ │ @ ParametersNode (location: (831...849))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 2)
│ │ │ ├── @ KeywordParameterNode (location: (831...835))
│ │ │ │ ├── name: :bar
diff --git a/test/yarp/snapshots/unparser/corpus/literal/defs.txt b/test/yarp/snapshots/unparser/corpus/literal/defs.txt
index b254c2ecd6..3b6f0de267 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/defs.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/defs.txt
@@ -130,8 +130,8 @@
│ │ │ │ │ │ │ └── @ RequiredParameterNode (location: (107...110))
│ │ │ │ │ │ │ └── name: :bar
│ │ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/unparser/corpus/literal/dstr.txt b/test/yarp/snapshots/unparser/corpus/literal/dstr.txt
index c3fc073e39..9d3e9881c5 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/dstr.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/dstr.txt
@@ -300,8 +300,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (278...279))
│ │ │ │ └── name: :x
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/unparser/corpus/literal/if.txt b/test/yarp/snapshots/unparser/corpus/literal/if.txt
index 5c8e65e086..9da1a6e4d1 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/if.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/if.txt
@@ -229,8 +229,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (208...212))
│ │ │ │ │ └── name: :pair
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/unparser/corpus/literal/lambda.txt b/test/yarp/snapshots/unparser/corpus/literal/lambda.txt
index b4b478cad2..ef554ffdd3 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/lambda.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/lambda.txt
@@ -39,8 +39,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (24...25))
│ │ │ │ │ └── name: :b
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -82,8 +82,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (45...46))
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -106,8 +106,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (58...59))
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -130,8 +130,8 @@
│ │ │ └── @ RequiredParameterNode (location: (71...72))
│ │ │ └── name: :b
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/unparser/corpus/literal/since/31.txt b/test/yarp/snapshots/unparser/corpus/literal/since/31.txt
index 1e5872a9f0..93db82b997 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/since/31.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/since/31.txt
@@ -11,8 +11,8 @@
│ │ @ ParametersNode (location: (8...9))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -55,8 +55,8 @@
│ │ └── @ RequiredParameterNode (location: (33...34))
│ │ └── name: :a
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block:
diff --git a/test/yarp/snapshots/unparser/corpus/literal/since/32.txt b/test/yarp/snapshots/unparser/corpus/literal/since/32.txt
index 5f534209dc..422943969f 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/since/32.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/since/32.txt
@@ -13,8 +13,8 @@
│ │ │ └── @ RequiredParameterNode (location: (8...16))
│ │ │ └── name: :argument
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (18...20))
@@ -62,12 +62,12 @@
│ │ └── @ RequiredParameterNode (location: (55...63))
│ │ └── name: :argument
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest:
│ │ @ RestParameterNode (location: (65...66))
│ │ ├── name: nil
│ │ ├── name_loc: ∅
│ │ └── operator_loc: (65...66) = "*"
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/unparser/corpus/literal/while.txt b/test/yarp/snapshots/unparser/corpus/literal/while.txt
index 29d65bc43d..2062932ee7 100644
--- a/test/yarp/snapshots/unparser/corpus/literal/while.txt
+++ b/test/yarp/snapshots/unparser/corpus/literal/while.txt
@@ -30,8 +30,8 @@
│ │ │ │ │ │ └── @ RequiredParameterNode (location: (18...21))
│ │ │ │ │ │ └── name: :bar
│ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ └── block: ∅
@@ -286,8 +286,8 @@
│ │ │ │ │ │ └── @ RequiredParameterNode (location: (249...252))
│ │ │ │ │ │ └── name: :baz
│ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ └── block: ∅
@@ -364,8 +364,8 @@
│ │ │ │ │ │ └── @ RequiredParameterNode (location: (320...323))
│ │ │ │ │ │ └── name: :foo
│ │ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── rest: ∅
+ │ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/unparser/corpus/semantic/block.txt b/test/yarp/snapshots/unparser/corpus/semantic/block.txt
index 992c9cfac8..4a16c23979 100644
--- a/test/yarp/snapshots/unparser/corpus/semantic/block.txt
+++ b/test/yarp/snapshots/unparser/corpus/semantic/block.txt
@@ -92,8 +92,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (74...75))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -134,8 +134,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (98...99))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/while.txt b/test/yarp/snapshots/while.txt
index ff87adc87f..ad875b8326 100644
--- a/test/yarp/snapshots/while.txt
+++ b/test/yarp/snapshots/while.txt
@@ -135,8 +135,8 @@
│ │ │ │ │ └── closing_loc: (141...144) = "end"
│ │ │ │ ├── flags:
│ │ │ │ └── name: "tap"
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/anonymous_blockarg.txt b/test/yarp/snapshots/whitequark/anonymous_blockarg.txt
index 5a32c81517..c145c0e919 100644
--- a/test/yarp/snapshots/whitequark/anonymous_blockarg.txt
+++ b/test/yarp/snapshots/whitequark/anonymous_blockarg.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (8...9))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block:
diff --git a/test/yarp/snapshots/whitequark/arg.txt b/test/yarp/snapshots/whitequark/arg.txt
index b448be0cfc..a3ca01bdeb 100644
--- a/test/yarp/snapshots/whitequark/arg.txt
+++ b/test/yarp/snapshots/whitequark/arg.txt
@@ -13,8 +13,8 @@
│ │ │ └── @ RequiredParameterNode (location: (6...9))
│ │ │ └── name: :foo
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -38,8 +38,8 @@
│ │ └── @ RequiredParameterNode (location: (28...31))
│ │ └── name: :bar
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/arg_duplicate_ignored.txt b/test/yarp/snapshots/whitequark/arg_duplicate_ignored.txt
index dad9c0adfb..df55173a0c 100644
--- a/test/yarp/snapshots/whitequark/arg_duplicate_ignored.txt
+++ b/test/yarp/snapshots/whitequark/arg_duplicate_ignored.txt
@@ -15,8 +15,8 @@
│ │ │ └── @ RequiredParameterNode (location: (11...12))
│ │ │ └── name: :_
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -40,8 +40,8 @@
│ │ └── @ RequiredParameterNode (location: (32...34))
│ │ └── name: :_a
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/args.txt b/test/yarp/snapshots/whitequark/args.txt
index 9e648eb533..a869e5a175 100644
--- a/test/yarp/snapshots/whitequark/args.txt
+++ b/test/yarp/snapshots/whitequark/args.txt
@@ -11,8 +11,8 @@
│ │ @ ParametersNode (location: (6...8))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -46,8 +46,8 @@
│ │ │ ├── opening_loc: (22...23) = "("
│ │ │ └── closing_loc: (26...27) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -74,8 +74,8 @@
│ │ │ ├── opening_loc: (42...43) = "("
│ │ │ └── closing_loc: (44...45) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -104,8 +104,8 @@
│ │ │ ├── opening_loc: (60...61) = "("
│ │ │ └── closing_loc: (65...66) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -134,8 +134,8 @@
│ │ │ ├── opening_loc: (81...82) = "("
│ │ │ └── closing_loc: (84...85) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -166,8 +166,8 @@
│ │ │ ├── opening_loc: (100...101) = "("
│ │ │ └── closing_loc: (106...107) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -196,8 +196,8 @@
│ │ │ ├── opening_loc: (122...123) = "("
│ │ │ └── closing_loc: (127...128) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -228,8 +228,8 @@
│ │ │ ├── opening_loc: (143...144) = "("
│ │ │ └── closing_loc: (151...152) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -260,8 +260,8 @@
│ │ │ ├── opening_loc: (167...168) = "("
│ │ │ └── closing_loc: (173...174) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -294,8 +294,8 @@
│ │ │ ├── opening_loc: (189...190) = "("
│ │ │ └── closing_loc: (198...199) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -323,8 +323,8 @@
│ │ │ ├── opening_loc: (214...215) = "("
│ │ │ └── closing_loc: (220...221) = ")"
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -344,8 +344,8 @@
│ │ @ ParametersNode (location: (236...246))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (236...242))
│ │ │ ├── name: :foo
@@ -375,8 +375,8 @@
│ │ @ ParametersNode (location: (261...286))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 2)
│ │ │ ├── @ KeywordParameterNode (location: (261...267))
│ │ │ │ ├── name: :foo
@@ -416,8 +416,8 @@
│ │ @ ParametersNode (location: (300...309))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (300...305))
@@ -445,12 +445,12 @@
│ │ @ ParametersNode (location: (322...327))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (322...323))
│ │ │ ├── name: nil
│ │ │ ├── name_loc: ∅
│ │ │ └── operator_loc: (322...323) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (325...327))
@@ -474,12 +474,12 @@
│ │ @ ParametersNode (location: (340...346))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (340...342))
│ │ │ ├── name: :r
│ │ │ ├── name_loc: (341...342) = "r"
│ │ │ └── operator_loc: (340...341) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -503,14 +503,14 @@
│ │ @ ParametersNode (location: (359...368))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 1)
- │ │ │ └── @ RequiredParameterNode (location: (363...364))
- │ │ │ └── name: :p
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (359...361))
│ │ │ ├── name: :r
│ │ │ ├── name_loc: (360...361) = "r"
│ │ │ └── operator_loc: (359...360) = "*"
+ │ │ ├── posts: (length: 1)
+ │ │ │ └── @ RequiredParameterNode (location: (363...364))
+ │ │ │ └── name: :p
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -549,8 +549,8 @@
│ │ │ └── @ RequiredParameterNode (location: (394...395))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -576,12 +576,12 @@
│ │ │ └── @ RequiredParameterNode (location: (412...413))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (415...417))
│ │ │ ├── name: :r
│ │ │ ├── name_loc: (416...417) = "r"
│ │ │ └── operator_loc: (415...416) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -607,14 +607,14 @@
│ │ │ └── @ RequiredParameterNode (location: (434...435))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 1)
- │ │ │ └── @ RequiredParameterNode (location: (441...442))
- │ │ │ └── name: :p
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (437...439))
│ │ │ ├── name: :r
│ │ │ ├── name_loc: (438...439) = "r"
│ │ │ └── operator_loc: (437...438) = "*"
+ │ │ ├── posts: (length: 1)
+ │ │ │ └── @ RequiredParameterNode (location: (441...442))
+ │ │ │ └── name: :p
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -647,8 +647,8 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (464...465))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -681,12 +681,12 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (487...488))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (490...492))
│ │ │ ├── name: :r
│ │ │ ├── name_loc: (491...492) = "r"
│ │ │ └── operator_loc: (490...491) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -719,14 +719,14 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (514...515))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 1)
- │ │ │ └── @ RequiredParameterNode (location: (521...522))
- │ │ │ └── name: :p
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (517...519))
│ │ │ ├── name: :r
│ │ │ ├── name_loc: (518...519) = "r"
│ │ │ └── operator_loc: (517...518) = "*"
+ │ │ ├── posts: (length: 1)
+ │ │ │ └── @ RequiredParameterNode (location: (521...522))
+ │ │ │ └── name: :p
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -759,10 +759,10 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (544...545))
│ │ │ └── flags: decimal
+ │ │ ├── rest: ∅
│ │ ├── posts: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (547...548))
│ │ │ └── name: :p
- │ │ ├── rest: ∅
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -786,8 +786,8 @@
│ │ @ ParametersNode (location: (565...569))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (565...569))
│ │ │ ├── name: :foo
@@ -811,8 +811,8 @@
│ │ @ ParametersNode (location: (583...590))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (583...590))
│ │ │ ├── name: :foo
@@ -845,8 +845,8 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (606...607))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -877,12 +877,12 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (626...627))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (629...631))
│ │ │ ├── name: :r
│ │ │ ├── name_loc: (630...631) = "r"
│ │ │ └── operator_loc: (629...630) = "*"
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -913,14 +913,14 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (650...651))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 1)
- │ │ │ └── @ RequiredParameterNode (location: (657...658))
- │ │ │ └── name: :p
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (653...655))
│ │ │ ├── name: :r
│ │ │ ├── name_loc: (654...655) = "r"
│ │ │ └── operator_loc: (653...654) = "*"
+ │ │ ├── posts: (length: 1)
+ │ │ │ └── @ RequiredParameterNode (location: (657...658))
+ │ │ │ └── name: :p
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
@@ -951,10 +951,10 @@
│ │ └── value:
│ │ @ IntegerNode (location: (677...678))
│ │ └── flags: decimal
+ │ ├── rest: ∅
│ ├── posts: (length: 1)
│ │ └── @ RequiredParameterNode (location: (680...681))
│ │ └── name: :p
- │ ├── rest: ∅
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block:
diff --git a/test/yarp/snapshots/whitequark/blockarg.txt b/test/yarp/snapshots/whitequark/blockarg.txt
index a8e036f611..57156a2834 100644
--- a/test/yarp/snapshots/whitequark/blockarg.txt
+++ b/test/yarp/snapshots/whitequark/blockarg.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...12))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block:
diff --git a/test/yarp/snapshots/whitequark/blockargs.txt b/test/yarp/snapshots/whitequark/blockargs.txt
index 7834640e6d..8dc2df4eab 100644
--- a/test/yarp/snapshots/whitequark/blockargs.txt
+++ b/test/yarp/snapshots/whitequark/blockargs.txt
@@ -56,8 +56,8 @@
│ │ │ │ @ ParametersNode (location: (21...23))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -89,8 +89,8 @@
│ │ │ │ @ ParametersNode (location: (32...41))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest:
│ │ │ │ │ @ KeywordRestParameterNode (location: (32...37))
@@ -126,12 +126,12 @@
│ │ │ │ @ ParametersNode (location: (50...55))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (50...51))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (50...51) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -163,14 +163,14 @@
│ │ │ │ @ ParametersNode (location: (64...73))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 1)
- │ │ │ │ │ └── @ RequiredParameterNode (location: (68...69))
- │ │ │ │ │ └── name: :p
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (64...66))
│ │ │ │ │ ├── name: :r
│ │ │ │ │ ├── name_loc: (65...66) = "r"
│ │ │ │ │ └── operator_loc: (64...65) = "*"
+ │ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ │ └── @ RequiredParameterNode (location: (68...69))
+ │ │ │ │ │ └── name: :p
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -202,12 +202,12 @@
│ │ │ │ @ ParametersNode (location: (82...88))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (82...84))
│ │ │ │ │ ├── name: :s
│ │ │ │ │ ├── name_loc: (83...84) = "s"
│ │ │ │ │ └── operator_loc: (82...83) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -239,12 +239,12 @@
│ │ │ │ @ ParametersNode (location: (97...99))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (97...99))
│ │ │ │ │ ├── name: :s
│ │ │ │ │ ├── name_loc: (98...99) = "s"
│ │ │ │ │ └── operator_loc: (97...98) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -272,12 +272,12 @@
│ │ │ │ @ ParametersNode (location: (108...109))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (108...109))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (108...109) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -353,8 +353,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (142...143))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -388,12 +388,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (156...157))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (159...160))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (159...160) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -427,14 +427,14 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (173...174))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 1)
- │ │ │ │ │ └── @ RequiredParameterNode (location: (180...181))
- │ │ │ │ │ └── name: :p
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (176...178))
│ │ │ │ │ ├── name: :r
│ │ │ │ │ ├── name_loc: (177...178) = "r"
│ │ │ │ │ └── operator_loc: (176...177) = "*"
+ │ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ │ └── @ RequiredParameterNode (location: (180...181))
+ │ │ │ │ │ └── name: :p
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -468,12 +468,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (194...195))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (197...199))
│ │ │ │ │ ├── name: :s
│ │ │ │ │ ├── name_loc: (198...199) = "s"
│ │ │ │ │ └── operator_loc: (197...198) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -507,12 +507,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (212...213))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (215...217))
│ │ │ │ │ ├── name: :s
│ │ │ │ │ ├── name_loc: (216...217) = "s"
│ │ │ │ │ └── operator_loc: (215...216) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -542,12 +542,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (226...227))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (229...230))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (229...230) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -579,12 +579,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (242...243))
│ │ │ │ │ └── name: :b
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (243...244))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (243...244) = ","
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -616,8 +616,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (256...257))
│ │ │ │ │ └── name: :c
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -654,8 +654,8 @@
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (271...272))
│ │ │ │ │ └── flags: decimal
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -696,14 +696,14 @@
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (290...291))
│ │ │ │ │ └── flags: decimal
- │ │ │ │ ├── posts: (length: 1)
- │ │ │ │ │ └── @ RequiredParameterNode (location: (297...298))
- │ │ │ │ │ └── name: :p
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (293...295))
│ │ │ │ │ ├── name: :r
│ │ │ │ │ ├── name_loc: (294...295) = "r"
│ │ │ │ │ └── operator_loc: (293...294) = "*"
+ │ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ │ └── @ RequiredParameterNode (location: (297...298))
+ │ │ │ │ │ └── name: :p
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -751,12 +751,12 @@
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (322...323))
│ │ │ │ │ └── flags: decimal
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (325...327))
│ │ │ │ │ ├── name: :r
│ │ │ │ │ ├── name_loc: (326...327) = "r"
│ │ │ │ │ └── operator_loc: (325...326) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -797,10 +797,10 @@
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (345...346))
│ │ │ │ │ └── flags: decimal
+ │ │ │ │ ├── rest: ∅
│ │ │ │ ├── posts: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (348...349))
│ │ │ │ │ └── name: :p
- │ │ │ │ ├── rest: ∅
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -834,12 +834,12 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (362...363))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (363...364))
│ │ │ │ │ ├── name: nil
│ │ │ │ │ ├── name_loc: ∅
│ │ │ │ │ └── operator_loc: (363...364) = ","
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -869,8 +869,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (373...374))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -900,8 +900,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (383...384))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -931,8 +931,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (393...394))
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -960,8 +960,8 @@
│ │ │ │ @ ParametersNode (location: (403...413))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 1)
│ │ │ │ │ └── @ KeywordParameterNode (location: (403...409))
│ │ │ │ │ ├── name: :foo
@@ -999,8 +999,8 @@
│ │ │ │ @ ParametersNode (location: (422...447))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 2)
│ │ │ │ │ ├── @ KeywordParameterNode (location: (422...428))
│ │ │ │ │ │ ├── name: :foo
@@ -1048,8 +1048,8 @@
│ │ │ │ @ ParametersNode (location: (456...460))
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 1)
│ │ │ │ │ └── @ KeywordParameterNode (location: (456...460))
│ │ │ │ │ ├── name: :foo
@@ -1088,8 +1088,8 @@
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (471...472))
│ │ │ │ │ └── flags: decimal
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -1128,12 +1128,12 @@
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (487...488))
│ │ │ │ │ └── flags: decimal
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (490...492))
│ │ │ │ │ ├── name: :r
│ │ │ │ │ ├── name_loc: (491...492) = "r"
│ │ │ │ │ └── operator_loc: (490...491) = "*"
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -1172,14 +1172,14 @@
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (507...508))
│ │ │ │ │ └── flags: decimal
- │ │ │ │ ├── posts: (length: 1)
- │ │ │ │ │ └── @ RequiredParameterNode (location: (514...515))
- │ │ │ │ │ └── name: :p
│ │ │ │ ├── rest:
│ │ │ │ │ @ RestParameterNode (location: (510...512))
│ │ │ │ │ ├── name: :r
│ │ │ │ │ ├── name_loc: (511...512) = "r"
│ │ │ │ │ └── operator_loc: (510...511) = "*"
+ │ │ │ │ ├── posts: (length: 1)
+ │ │ │ │ │ └── @ RequiredParameterNode (location: (514...515))
+ │ │ │ │ │ └── name: :p
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
@@ -1218,10 +1218,10 @@
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (530...531))
│ │ │ │ │ └── flags: decimal
+ │ │ │ │ ├── rest: ∅
│ │ │ │ ├── posts: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (533...534))
│ │ │ │ │ └── name: :p
- │ │ │ │ ├── rest: ∅
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block:
diff --git a/test/yarp/snapshots/whitequark/bug_435.txt b/test/yarp/snapshots/whitequark/bug_435.txt
index a287a0513f..c8c8a9a243 100644
--- a/test/yarp/snapshots/whitequark/bug_435.txt
+++ b/test/yarp/snapshots/whitequark/bug_435.txt
@@ -24,8 +24,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (6...9))
│ │ │ │ │ └── name: :foo
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/bug_lambda_leakage.txt b/test/yarp/snapshots/whitequark/bug_lambda_leakage.txt
index b5a4b46f45..d96fdb9e67 100644
--- a/test/yarp/snapshots/whitequark/bug_lambda_leakage.txt
+++ b/test/yarp/snapshots/whitequark/bug_lambda_leakage.txt
@@ -16,8 +16,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (3...8))
│ │ │ │ └── name: :scope
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/endless_comparison_method.txt b/test/yarp/snapshots/whitequark/endless_comparison_method.txt
index e1b10ac4b2..c294b16f25 100644
--- a/test/yarp/snapshots/whitequark/endless_comparison_method.txt
+++ b/test/yarp/snapshots/whitequark/endless_comparison_method.txt
@@ -13,8 +13,8 @@
│ │ │ └── @ RequiredParameterNode (location: (7...12))
│ │ │ └── name: :other
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -48,8 +48,8 @@
│ │ │ └── @ RequiredParameterNode (location: (37...42))
│ │ │ └── name: :other
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -83,8 +83,8 @@
│ │ │ └── @ RequiredParameterNode (location: (67...72))
│ │ │ └── name: :other
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -118,8 +118,8 @@
│ │ │ └── @ RequiredParameterNode (location: (97...102))
│ │ │ └── name: :other
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -153,8 +153,8 @@
│ │ │ └── @ RequiredParameterNode (location: (128...133))
│ │ │ └── name: :other
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -188,8 +188,8 @@
│ │ └── @ RequiredParameterNode (location: (158...163))
│ │ └── name: :other
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/endless_method.txt b/test/yarp/snapshots/whitequark/endless_method.txt
index 1773f9d0ba..3d42644037 100644
--- a/test/yarp/snapshots/whitequark/endless_method.txt
+++ b/test/yarp/snapshots/whitequark/endless_method.txt
@@ -30,8 +30,8 @@
│ │ │ └── @ RequiredParameterNode (location: (24...25))
│ │ │ └── name: :x
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -109,8 +109,8 @@
│ │ └── @ RequiredParameterNode (location: (68...69))
│ │ └── name: :x
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/endless_method_command_syntax.txt b/test/yarp/snapshots/whitequark/endless_method_command_syntax.txt
index 5634c12f1b..dfdcb80b48 100644
--- a/test/yarp/snapshots/whitequark/endless_method_command_syntax.txt
+++ b/test/yarp/snapshots/whitequark/endless_method_command_syntax.txt
@@ -77,8 +77,8 @@
│ │ │ └── @ RequiredParameterNode (location: (58...59))
│ │ │ └── name: :x
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -211,8 +211,8 @@
│ │ │ └── @ RequiredParameterNode (location: (141...142))
│ │ │ └── name: :x
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -251,8 +251,8 @@
│ │ │ └── @ RequiredParameterNode (location: (166...167))
│ │ │ └── name: :x
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -316,8 +316,8 @@
│ │ └── @ RequiredParameterNode (location: (233...234))
│ │ └── name: :x
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/endless_method_forwarded_args_legacy.txt b/test/yarp/snapshots/whitequark/endless_method_forwarded_args_legacy.txt
index c11ad81adb..d413f05d69 100644
--- a/test/yarp/snapshots/whitequark/endless_method_forwarded_args_legacy.txt
+++ b/test/yarp/snapshots/whitequark/endless_method_forwarded_args_legacy.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (8...11))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (8...11))
diff --git a/test/yarp/snapshots/whitequark/forward_arg.txt b/test/yarp/snapshots/whitequark/forward_arg.txt
index 3af092a289..ff91265da9 100644
--- a/test/yarp/snapshots/whitequark/forward_arg.txt
+++ b/test/yarp/snapshots/whitequark/forward_arg.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (8...11))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (8...11))
diff --git a/test/yarp/snapshots/whitequark/forward_arg_with_open_args.txt b/test/yarp/snapshots/whitequark/forward_arg_with_open_args.txt
index 4027e84938..5067075b42 100644
--- a/test/yarp/snapshots/whitequark/forward_arg_with_open_args.txt
+++ b/test/yarp/snapshots/whitequark/forward_arg_with_open_args.txt
@@ -15,8 +15,8 @@
│ │ │ @ ParametersNode (location: (9...12))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest:
│ │ │ │ @ ForwardingParameterNode (location: (9...12))
@@ -58,8 +58,8 @@
│ │ │ @ ParametersNode (location: (39...42))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest:
│ │ │ │ @ ForwardingParameterNode (location: (39...42))
@@ -97,8 +97,8 @@
│ │ @ ParametersNode (location: (68...71))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (68...71))
@@ -119,8 +119,8 @@
│ │ @ ParametersNode (location: (85...88))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (85...88))
@@ -158,8 +158,8 @@
│ │ │ └── @ RequiredParameterNode (location: (113...114))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (116...119))
@@ -197,8 +197,8 @@
│ │ │ └── @ RequiredParameterNode (location: (144...145))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (147...150))
@@ -243,8 +243,8 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (182...183))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (185...188))
@@ -272,8 +272,8 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (206...207))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (209...212))
@@ -316,8 +316,8 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (241...242))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (244...247))
@@ -355,8 +355,8 @@
│ │ └── @ RequiredParameterNode (location: (272...273))
│ │ └── name: :a
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (275...278))
diff --git a/test/yarp/snapshots/whitequark/forward_args_legacy.txt b/test/yarp/snapshots/whitequark/forward_args_legacy.txt
index 370e741c35..4d6abd7034 100644
--- a/test/yarp/snapshots/whitequark/forward_args_legacy.txt
+++ b/test/yarp/snapshots/whitequark/forward_args_legacy.txt
@@ -11,8 +11,8 @@
│ │ @ ParametersNode (location: (8...11))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (8...11))
@@ -48,8 +48,8 @@
│ │ @ ParametersNode (location: (37...40))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ ForwardingParameterNode (location: (37...40))
@@ -70,8 +70,8 @@
│ @ ParametersNode (location: (56...59))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (56...59))
diff --git a/test/yarp/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt b/test/yarp/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt
index 6fd9903e42..076b36b3fc 100644
--- a/test/yarp/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt
+++ b/test/yarp/snapshots/whitequark/forwarded_argument_with_kwrestarg.txt
@@ -13,8 +13,8 @@
│ │ └── @ RequiredParameterNode (location: (8...16))
│ │ └── name: :argument
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ KeywordRestParameterNode (location: (18...20))
diff --git a/test/yarp/snapshots/whitequark/forwarded_argument_with_restarg.txt b/test/yarp/snapshots/whitequark/forwarded_argument_with_restarg.txt
index 3e25002f45..05005dc634 100644
--- a/test/yarp/snapshots/whitequark/forwarded_argument_with_restarg.txt
+++ b/test/yarp/snapshots/whitequark/forwarded_argument_with_restarg.txt
@@ -13,12 +13,12 @@
│ │ └── @ RequiredParameterNode (location: (8...16))
│ │ └── name: :argument
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest:
│ │ @ RestParameterNode (location: (18...19))
│ │ ├── name: nil
│ │ ├── name_loc: ∅
│ │ └── operator_loc: (18...19) = "*"
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/forwarded_kwrestarg.txt b/test/yarp/snapshots/whitequark/forwarded_kwrestarg.txt
index 320f61bc88..bf434a4961 100644
--- a/test/yarp/snapshots/whitequark/forwarded_kwrestarg.txt
+++ b/test/yarp/snapshots/whitequark/forwarded_kwrestarg.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (8...10))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ KeywordRestParameterNode (location: (8...10))
diff --git a/test/yarp/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt b/test/yarp/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt
index 7999c9b7f5..75132d5480 100644
--- a/test/yarp/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt
+++ b/test/yarp/snapshots/whitequark/forwarded_kwrestarg_with_additional_kwarg.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (8...10))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ KeywordRestParameterNode (location: (8...10))
diff --git a/test/yarp/snapshots/whitequark/forwarded_restarg.txt b/test/yarp/snapshots/whitequark/forwarded_restarg.txt
index d12d45e3af..18c9075087 100644
--- a/test/yarp/snapshots/whitequark/forwarded_restarg.txt
+++ b/test/yarp/snapshots/whitequark/forwarded_restarg.txt
@@ -11,12 +11,12 @@
│ @ ParametersNode (location: (8...9))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest:
│ │ @ RestParameterNode (location: (8...9))
│ │ ├── name: nil
│ │ ├── name_loc: ∅
│ │ └── operator_loc: (8...9) = "*"
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/kwarg.txt b/test/yarp/snapshots/whitequark/kwarg.txt
index 6552b4c405..9447c2590c 100644
--- a/test/yarp/snapshots/whitequark/kwarg.txt
+++ b/test/yarp/snapshots/whitequark/kwarg.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...10))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (6...10))
│ │ ├── name: :foo
diff --git a/test/yarp/snapshots/whitequark/kwnilarg.txt b/test/yarp/snapshots/whitequark/kwnilarg.txt
index 7db20c2b3c..8280a5b590 100644
--- a/test/yarp/snapshots/whitequark/kwnilarg.txt
+++ b/test/yarp/snapshots/whitequark/kwnilarg.txt
@@ -14,8 +14,8 @@
│ │ │ @ ParametersNode (location: (3...8))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest:
│ │ │ │ @ NoKeywordsParameterNode (location: (3...8))
@@ -34,8 +34,8 @@
│ │ @ ParametersNode (location: (20...25))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ NoKeywordsParameterNode (location: (20...25))
@@ -66,8 +66,8 @@
│ │ │ @ ParametersNode (location: (38...43))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest:
│ │ │ │ @ NoKeywordsParameterNode (location: (38...43))
diff --git a/test/yarp/snapshots/whitequark/kwoptarg.txt b/test/yarp/snapshots/whitequark/kwoptarg.txt
index b1973c88ee..dd1b36f018 100644
--- a/test/yarp/snapshots/whitequark/kwoptarg.txt
+++ b/test/yarp/snapshots/whitequark/kwoptarg.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...12))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (6...12))
│ │ ├── name: :foo
diff --git a/test/yarp/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt b/test/yarp/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt
index 44a5d4b03b..db8de6dbba 100644
--- a/test/yarp/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt
+++ b/test/yarp/snapshots/whitequark/kwoptarg_with_kwrestarg_and_forwarded_args.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...16))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ KeywordParameterNode (location: (6...12))
│ │ ├── name: :a
diff --git a/test/yarp/snapshots/whitequark/kwrestarg_named.txt b/test/yarp/snapshots/whitequark/kwrestarg_named.txt
index 59b2b4d3ac..13146ef4b3 100644
--- a/test/yarp/snapshots/whitequark/kwrestarg_named.txt
+++ b/test/yarp/snapshots/whitequark/kwrestarg_named.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...11))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ KeywordRestParameterNode (location: (6...11))
diff --git a/test/yarp/snapshots/whitequark/kwrestarg_unnamed.txt b/test/yarp/snapshots/whitequark/kwrestarg_unnamed.txt
index e85e700313..bf11fe8cfb 100644
--- a/test/yarp/snapshots/whitequark/kwrestarg_unnamed.txt
+++ b/test/yarp/snapshots/whitequark/kwrestarg_unnamed.txt
@@ -11,8 +11,8 @@
│ @ ParametersNode (location: (6...8))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ KeywordRestParameterNode (location: (6...8))
diff --git a/test/yarp/snapshots/whitequark/method_definition_in_while_cond.txt b/test/yarp/snapshots/whitequark/method_definition_in_while_cond.txt
index 5173d31f35..b2fe8dc705 100644
--- a/test/yarp/snapshots/whitequark/method_definition_in_while_cond.txt
+++ b/test/yarp/snapshots/whitequark/method_definition_in_while_cond.txt
@@ -36,8 +36,8 @@
│ │ │ │ │ └── closing_loc: (25...28) = "end"
│ │ │ │ ├── flags:
│ │ │ │ └── name: "tap"
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -132,8 +132,8 @@
│ │ │ │ │ └── closing_loc: (121...124) = "end"
│ │ │ │ ├── flags:
│ │ │ │ └── name: "tap"
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/optarg.txt b/test/yarp/snapshots/whitequark/optarg.txt
index dbc5fe6b32..d7cb107efc 100644
--- a/test/yarp/snapshots/whitequark/optarg.txt
+++ b/test/yarp/snapshots/whitequark/optarg.txt
@@ -18,8 +18,8 @@
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (12...13))
│ │ │ └── flags: decimal
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
@@ -53,8 +53,8 @@
│ │ └── value:
│ │ @ IntegerNode (location: (37...38))
│ │ └── flags: decimal
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/parser_bug_272.txt b/test/yarp/snapshots/whitequark/parser_bug_272.txt
index 22d71b77c7..9280c3078f 100644
--- a/test/yarp/snapshots/whitequark/parser_bug_272.txt
+++ b/test/yarp/snapshots/whitequark/parser_bug_272.txt
@@ -25,8 +25,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (9...10))
│ │ │ │ └── name: :c
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/parser_bug_507.txt b/test/yarp/snapshots/whitequark/parser_bug_507.txt
index 2d2200365c..5f14766032 100644
--- a/test/yarp/snapshots/whitequark/parser_bug_507.txt
+++ b/test/yarp/snapshots/whitequark/parser_bug_507.txt
@@ -19,12 +19,12 @@
│ │ │ @ ParametersNode (location: (7...12))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (7...12))
│ │ │ │ ├── name: :args
│ │ │ │ ├── name_loc: (8...12) = "args"
│ │ │ │ └── operator_loc: (7...8) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/parser_bug_645.txt b/test/yarp/snapshots/whitequark/parser_bug_645.txt
index 458c443a9f..d4e78a2c25 100644
--- a/test/yarp/snapshots/whitequark/parser_bug_645.txt
+++ b/test/yarp/snapshots/whitequark/parser_bug_645.txt
@@ -23,8 +23,8 @@
│ │ │ ├── opening_loc: (8...9) = "{"
│ │ │ ├── elements: (length: 0)
│ │ │ └── closing_loc: (9...10) = "}"
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/procarg0.txt b/test/yarp/snapshots/whitequark/procarg0.txt
index b64e9273e8..aeabf595d4 100644
--- a/test/yarp/snapshots/whitequark/procarg0.txt
+++ b/test/yarp/snapshots/whitequark/procarg0.txt
@@ -27,8 +27,8 @@
│ │ │ │ │ ├── opening_loc: (5...6) = "("
│ │ │ │ │ └── closing_loc: (14...15) = ")"
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -58,8 +58,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (26...29))
│ │ │ │ └── name: :foo
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/restarg_named.txt b/test/yarp/snapshots/whitequark/restarg_named.txt
index 0a55e75a6d..501be27342 100644
--- a/test/yarp/snapshots/whitequark/restarg_named.txt
+++ b/test/yarp/snapshots/whitequark/restarg_named.txt
@@ -11,12 +11,12 @@
│ @ ParametersNode (location: (6...10))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest:
│ │ @ RestParameterNode (location: (6...10))
│ │ ├── name: :foo
│ │ ├── name_loc: (7...10) = "foo"
│ │ └── operator_loc: (6...7) = "*"
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/restarg_unnamed.txt b/test/yarp/snapshots/whitequark/restarg_unnamed.txt
index df6ef70f10..b943286552 100644
--- a/test/yarp/snapshots/whitequark/restarg_unnamed.txt
+++ b/test/yarp/snapshots/whitequark/restarg_unnamed.txt
@@ -11,12 +11,12 @@
│ @ ParametersNode (location: (6...7))
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest:
│ │ @ RestParameterNode (location: (6...7))
│ │ ├── name: nil
│ │ ├── name_loc: ∅
│ │ └── operator_loc: (6...7) = "*"
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/ruby_bug_10653.txt b/test/yarp/snapshots/whitequark/ruby_bug_10653.txt
index 0025e0f52f..25e74b46bb 100644
--- a/test/yarp/snapshots/whitequark/ruby_bug_10653.txt
+++ b/test/yarp/snapshots/whitequark/ruby_bug_10653.txt
@@ -124,8 +124,8 @@
│ │ │ │ │ └── @ RequiredParameterNode (location: (79...80))
│ │ │ │ │ └── name: :n
│ │ │ │ ├── optionals: (length: 0)
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/ruby_bug_12073.txt b/test/yarp/snapshots/whitequark/ruby_bug_12073.txt
index 2546dafa72..329c7eacdd 100644
--- a/test/yarp/snapshots/whitequark/ruby_bug_12073.txt
+++ b/test/yarp/snapshots/whitequark/ruby_bug_12073.txt
@@ -46,8 +46,8 @@
│ │ └── @ RequiredParameterNode (location: (23...28))
│ │ └── name: :raise
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/ruby_bug_15789.txt b/test/yarp/snapshots/whitequark/ruby_bug_15789.txt
index 96fa33e48f..c583841fc4 100644
--- a/test/yarp/snapshots/whitequark/ruby_bug_15789.txt
+++ b/test/yarp/snapshots/whitequark/ruby_bug_15789.txt
@@ -46,8 +46,8 @@
│ │ │ │ │ ├── block: ∅
│ │ │ │ │ ├── flags: variable_call
│ │ │ │ │ └── name: "_1"
- │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── rest: ∅
+ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
@@ -83,8 +83,8 @@
│ │ │ @ ParametersNode (location: (27...36))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ KeywordParameterNode (location: (27...36))
│ │ │ │ ├── name: :a
diff --git a/test/yarp/snapshots/whitequark/ruby_bug_9669.txt b/test/yarp/snapshots/whitequark/ruby_bug_9669.txt
index 80fa43fcfa..766395f1fd 100644
--- a/test/yarp/snapshots/whitequark/ruby_bug_9669.txt
+++ b/test/yarp/snapshots/whitequark/ruby_bug_9669.txt
@@ -11,8 +11,8 @@
│ │ @ ParametersNode (location: (6...8))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (6...8))
│ │ │ ├── name: :b
diff --git a/test/yarp/snapshots/whitequark/send_lambda.txt b/test/yarp/snapshots/whitequark/send_lambda.txt
index 1607682c8e..a4924611fe 100644
--- a/test/yarp/snapshots/whitequark/send_lambda.txt
+++ b/test/yarp/snapshots/whitequark/send_lambda.txt
@@ -14,12 +14,12 @@
│ │ │ @ ParametersNode (location: (3...4))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (3...4))
│ │ │ │ ├── name: nil
│ │ │ │ ├── name_loc: ∅
│ │ │ │ └── operator_loc: (3...4) = "*"
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/send_lambda_args.txt b/test/yarp/snapshots/whitequark/send_lambda_args.txt
index affbd7d543..c331007637 100644
--- a/test/yarp/snapshots/whitequark/send_lambda_args.txt
+++ b/test/yarp/snapshots/whitequark/send_lambda_args.txt
@@ -16,8 +16,8 @@
│ │ │ │ └── @ RequiredParameterNode (location: (4...5))
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
@@ -38,8 +38,8 @@
│ │ │ └── @ RequiredParameterNode (location: (15...16))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/send_lambda_args_noparen.txt b/test/yarp/snapshots/whitequark/send_lambda_args_noparen.txt
index d2054a3e9b..0b5a2d4d06 100644
--- a/test/yarp/snapshots/whitequark/send_lambda_args_noparen.txt
+++ b/test/yarp/snapshots/whitequark/send_lambda_args_noparen.txt
@@ -14,8 +14,8 @@
│ │ │ @ ParametersNode (location: (3...7))
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
- │ │ │ ├── posts: (length: 0)
│ │ │ ├── rest: ∅
+ │ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ KeywordParameterNode (location: (3...7))
│ │ │ │ ├── name: :a
@@ -40,8 +40,8 @@
│ │ @ ParametersNode (location: (16...18))
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ KeywordParameterNode (location: (16...18))
│ │ │ ├── name: :a
diff --git a/test/yarp/snapshots/whitequark/send_lambda_args_shadow.txt b/test/yarp/snapshots/whitequark/send_lambda_args_shadow.txt
index c28c58c4ab..7fa4ed350c 100644
--- a/test/yarp/snapshots/whitequark/send_lambda_args_shadow.txt
+++ b/test/yarp/snapshots/whitequark/send_lambda_args_shadow.txt
@@ -16,8 +16,8 @@
│ │ │ └── @ RequiredParameterNode (location: (3...4))
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
- │ │ ├── posts: (length: 0)
│ │ ├── rest: ∅
+ │ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
diff --git a/test/yarp/snapshots/whitequark/trailing_forward_arg.txt b/test/yarp/snapshots/whitequark/trailing_forward_arg.txt
index f07689417c..a3a26d4b3b 100644
--- a/test/yarp/snapshots/whitequark/trailing_forward_arg.txt
+++ b/test/yarp/snapshots/whitequark/trailing_forward_arg.txt
@@ -15,8 +15,8 @@
│ │ └── @ RequiredParameterNode (location: (11...12))
│ │ └── name: :b
│ ├── optionals: (length: 0)
- │ ├── posts: (length: 0)
│ ├── rest: ∅
+ │ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest:
│ │ @ ForwardingParameterNode (location: (14...17))