Repository: ruby/yarp
Pull request #1448 (2023-09-12 10:43:31)

Move the post required parameters after the rest parameter
* See https://github.com/ruby/yarp/issues/1436


Patch:
diff --git a/config.yml b/config.yml
index 257a5bfc..411c1154 100644
--- a/config.yml
+++ b/config.yml
@@ -1908,11 +1908,11 @@ nodes:
         type: node[]
       - name: optionals
         type: node[]
-      - name: posts
-        type: node[]
       - name: rest
         type: node?
         kind: RestParameterNode
+      - name: posts
+        type: node[]
       - name: keywords
         type: node[]
       - name: keyword_rest


Test patch:
diff --git a/test/yarp/errors_test.rb b/test/yarp/errors_test.rb
index b22aca5e..e81a4cfa 100644
--- a/test/yarp/errors_test.rb
+++ b/test/yarp/errors_test.rb
@@ -494,7 +494,7 @@ module YARP
           RequiredParameterNode(:@a),
           RequiredParameterNode(:$A),
           RequiredParameterNode(:@@a),
-        ], [], [], nil, [], nil, nil),
+        ], [], nil, [], [], nil, nil),
         nil,
         [:A, :@a, :$A, :@@a],
         Location(),
@@ -560,9 +560,9 @@ module YARP
         ParametersNode(
           [RequiredParameterNode(:a), RequiredParameterNode(:b), RequiredParameterNode(:c)],
           [],
-          [],
           nil,
           [],
+          [],
           nil,
           nil
         ),
@@ -588,7 +588,7 @@ module YARP
         Location(),
         Location(),
         BlockParametersNode(
-          ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], [], nil, [], nil, nil),
+          ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], nil, [], [], nil, nil),
           [],
           Location(),
           Location()
@@ -644,8 +644,8 @@ module YARP
         ParametersNode(
           [],
           [],
-          [RequiredParameterNode(:a)],
           nil,
+          [RequiredParameterNode(:a)],
           [],
           nil,
           BlockParameterNode(:block, Location(), Location())
@@ -669,7 +669,7 @@ module YARP
         :foo,
         Location(),
         nil,
-        ParametersNode([], [], [RequiredParameterNode(:a)], nil, [], nil, BlockParameterNode(nil, nil, Location())),
+        ParametersNode([], [], nil, [RequiredParameterNode(:a)], [], nil, BlockParameterNode(nil, nil, Location())),
         nil,
         [:&, :a],
         Location(),
@@ -693,8 +693,8 @@ module YARP
         ParametersNode(
           [],
           [],
-          [RequiredParameterNode(:a)],
           nil,
+          [RequiredParameterNode(:a)],
           [],
           ForwardingParameterNode(),
           nil
@@ -721,8 +721,8 @@ module YARP
         ParametersNode(
           [],
           [],
-          [RequiredParameterNode(:a)],
           nil,
+          [RequiredParameterNode(:a)],
           [KeywordParameterNode(:b, Location(), nil)],
           nil,
           nil
@@ -747,10 +747,10 @@ module YARP
         Location(),
         nil,
         ParametersNode(
-          [],
           [],
           [],
           nil,
+          [],
           [KeywordParameterNode(:b, Location(), nil)],
           KeywordRestParameterNode(:rest, Location(), Location()),
           nil
@@ -775,7 +775,7 @@ module YARP
         :foo,
         Location(),
         nil,
-        ParametersNode([], [], [], nil, [], ForwardingParameterNode(), nil),
+        ParametersNode([], [], nil, [], [], ForwardingParameterNode(), nil),
         nil,
         [:"..."],
         Location(),
@@ -799,8 +799,8 @@ module YARP
         ParametersNode(
           [],
           [],
-          [RequiredParameterNode(:a)],
           nil,
+          [RequiredParameterNode(:a)],
           [KeywordParameterNode(:b, Location(), nil)],
           KeywordRestParameterNode(:args, Location(), Location()),
           nil
@@ -829,8 +829,8 @@ module YARP
         ParametersNode(
           [],
           [],
-          [RequiredParameterNode(:a)],
           nil,
+          [RequiredParameterNode(:a)],
           [KeywordParameterNode(:b, Location(), nil)],
           KeywordRestParameterNode(:args, Location(), Location()),
           nil
@@ -859,8 +859,8 @@ module YARP
         ParametersNode(
           [],
           [],
-          [RequiredParameterNode(:a)],
           nil,
+          [RequiredParameterNode(:a)],
           [KeywordParameterNode(:b, Location(), nil)],
           KeywordRestParameterNode(:args, Location(), Location()),
           nil
@@ -892,8 +892,8 @@ module YARP
             OptionalParameterNode(:b, Location(), Location(), IntegerNode(IntegerBaseFlags::DECIMAL)),
             OptionalParameterNode(:d, Location(), Location(), IntegerNode(IntegerBaseFlags::DECIMAL))
           ],
-          [RequiredParameterNode(:c), RequiredParameterNode(:e)],
           nil,
+          [RequiredParameterNode(:c), RequiredParameterNode(:e)],
           [],
           nil,
           nil
@@ -954,7 +954,7 @@ module YARP
         Location(),
         Location(),
         Location(),
-        BlockParametersNode(ParametersNode([], [], [], nil, [], ForwardingParameterNode(), nil), [], Location(), Location()),
+        BlockParametersNode(ParametersNode([], [], nil, [], [], ForwardingParameterNode(), nil), [], Location(), Location()),
         nil
       )
 
@@ -973,7 +973,7 @@ module YARP
         nil,
         BlockNode(
           [:"..."],
-          BlockParametersNode(ParametersNode([], [], [], nil, [], ForwardingParameterNode(), nil), [], Location(), Location()),
+          BlockParametersNode(ParametersNode([], [], nil, [], [], ForwardingParameterNode(), nil), [], Location(), Location()),
           nil,
           Location(),
           Location()
@@ -1046,7 +1046,7 @@ module YARP
           :foo,
           Location(),
           nil,
-          ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b), RequiredParameterNode(:a)], [], [], nil, [], nil, nil),
+          ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b), RequiredParameterNode(:a)], [], nil, [], [], nil, nil),
           nil,
           [:a, :b],
           Location(),
@@ -1066,7 +1066,7 @@ module YARP
         :foo,
         Location(),
         nil,
-        ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], [], RestParameterNode(:a, Location(), Location()), [], nil, nil),
+        ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], RestParameterNode(:a, Location(), Location()), [], [], nil, nil),
         nil,
         [:a, :b],
         Location(),
@@ -1085,7 +1085,7 @@ module YARP
         :foo,
         Location(),
         nil,
-        ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], [], nil, [], KeywordRestParameterNode(:a, Location(), Location()), nil),
+        ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], nil, [], [], KeywordRestParameterNode(:a, Location(), Location()), nil),
         nil,
         [:a, :b],
         Location(),
@@ -1104,7 +1104,7 @@ module YARP
         :foo,
         Location(),
         nil,
-        ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], [], nil, [], nil, BlockParameterNode(:a, Location(), Location())),
+        ParametersNode([RequiredParameterNode(:a), RequiredParameterNode(:b)], [], nil, [], [], nil, BlockParameterNode(:a, Location(), Location())),
         nil,
         [:a, :b],
         Location(),
@@ -1123,7 +1123,7 @@ module YARP
         :foo,
         Location(),
         nil,
-        ParametersNode([], [OptionalParameterNode(:a, Location(), Location(), IntegerNode(IntegerBaseFlags::DECIMAL))], [RequiredParameterNode(:b)], RestParameterNode(:c, Location(), Location()), [], nil, nil),
+        ParametersNode([], [OptionalParameterNode(:a, Location(), Location(), IntegerNode(IntegerBaseFlags::DECIMAL))], RestParameterNode(:c, Location(), Location()), [RequiredParameterNode(:b)], [], nil, nil),
         nil,
         [:a, :b, :c],
         Location(),
diff --git a/test/yarp/snapshots/blocks.txt b/test/yarp/snapshots/blocks.txt
index 8e8673c3..e4d2725d 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 afbbaff3..98d51615 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 fc900612..5b6342c7 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 e3d82566..83af6460 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 bbedbfcf..c2e7856f 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 710f0c1c..31b4373d 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 4f35e292..6f89c815 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 5d07e198..f3027621 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 d77157f5..f6067631 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 6419dfce..12124982 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 049adae0..d7066a7b 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 45a36151..5485f6fc 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 6db709ce..7060880e 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 39e9b1bf..c967c38f 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 7af1e359..696ad896 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 b064de5c..fe2f55f3 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 9a3c3532..d50a8505 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 eee916a6..f29bbdff 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 1ec87bb7..c2bbe013 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 1472f3af..616d071e 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 73269efb..049ac753 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 fc657917..7dcb8150 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 4c350e2f..98053456 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 b669c510..47f3334a 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 a7323f8a..2c6a5392 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 c6db1d93..a4f8d512 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 f7a743c5..52cbc52a 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 12da5265..7c8622eb 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 ef135217..e4c5a81f 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 f2ba566e..2d8c9602 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 f91b3e4c..4c1a7557 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 5cdc24eb..86dd7095 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 06806d01..b5e33f18 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 994553b8..caad5689 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 bfdb4790..a9e5a5ef 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 1df66b00..77b7021d 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 ba1fb191..9c465f83 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 3c6c950a..9b308969 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 99c85f8a..55bd38b1 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 54559af3..1507b8ed 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 466ef7e9..3bce4414 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 5d792b64..b7ad9c1a 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 f47647b2..80d6c52b 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 60280843..80f5f9ca 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 7252dda1..023e1191 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 988bcb83..68e489b0 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 a209e2b1..9b8cd5ed 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 938b3cf4..28fa486f 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 89c892bc..603053ce 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 48a0eb82..b945c1b6 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 c64efe75..ff5e9f24 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 1405befc..ee3e424a 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 38904d86..e5cb3d05 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 ab558cca..02d3665f 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 d47725f9..01ced357 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 5961b86e..abe438bb 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 1c79d23d..23bf76d5 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 e07ef643..bf58b1d4 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 62e0019d..394d81ef 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 09d7a243..baa57305 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 3def0b46..a0c237f4 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 c4d59542..d36409bb 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 98bf08f7..87a1038a 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 7660c86a..e0580a0c 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 e56ff5b6..aed257bc 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 77eb795c..d5f2a3df 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 88f12486..9653ba48 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 85cc2e92..474049ab 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 3308de7f..274cfc23 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 340104dc..7bfa1bd6 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 f6cfcc90..72910246 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 a70cd123..1030cf23 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 8d0e098d..a72e14ea 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 1bd7420d..d4bb8a49 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 64ef8743..8310cc5e 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 46c6cfb8..9fe3deb0 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 3b316d64..90bb0c2b 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 7bdb3445..6ad0bdd7 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 c1b53833..2406d334 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 75e4bebe..abbe054d 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 5939649c..ee03a037 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 ef58921e..07a07748 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 fc867265..0c8020cf 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 f077b4a0..87ea3948 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 e4010908..27295ea3 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 d2343207..2aa267bc 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 8223e440..b1f5872f 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 b5b9ca33..2fd43d7b 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 507a7779..a6db668c 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 f14db9e0..b3581151 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 0adeec36..105187f8 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 8a8bc9e3..fdc213ac 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 643f4df0..8bdab4cf 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 e5b3ae13..ae569e9a 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 4a1a5540..086c555d 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 e01eab50..9c3efc96 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 b75f3a4c..243a0c6f 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 5e562abb..3df6af23 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 8c91eb64..1b048969 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 2d458923..7c4a8c48 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 85798d32..272b79db 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 4251dd1e..12e9944c 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 08a38c21..a884a6f8 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 6754bacb..205ea25e 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 ef071327..a980cbce 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 b3106e95..0acdb0b5 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 afa860e5..5f7c3a2b 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 6b92f92d..78118d63 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 3459239d..166eccb0 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 5b0be2a0..945aa84b 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 0676d81c..f9323b6a 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 11af8366..d65ee0df 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 0d5b3e0a..e2b4d8f7 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 042c6a97..7082af02 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 b624f1a9..c9fbf7ca 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 958d09cd..b9cc8ee6 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 124e0086..6fadb22f 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 4ead8a0f..e45fae65 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 cd7a4ac0..706e51cb 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 51bc0816..6086d83a 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 beeda8c5..8966fde7 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 8c52c17e..d45d4c04 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 5cd0f0f9..19d19d8e 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 bc409282..45702e5b 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 bcaa2186..2e813d18 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 c71e4ea7..44633a5a 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 b254c2ec..3b6f0de2 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 c3fc073e..9d3e9881 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 5c8e65e0..9da1a6e4 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 b4b478ca..ef554ffd 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 1e5872a9..93db82b9 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 5f534209..42294396 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 29d65bc4..2062932e 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 992c9cfa..4a16c239 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 ff87adc8..ad875b83 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 5a32c815..c145c0e9 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 b448be0c..a3ca01bd 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 dad9c0ad..df55173a 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 9e648eb5..a869e5a1 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 a8e036f6..57156a28 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 7834640e..8dc2df4e 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 a287a051..c8c8a9a2 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 b5a4b46f..d96fdb9e 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 e1b10ac4..c294b16f 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 1773f9d0..3d426440 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 5634c12f..dfdcb80b 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 c11ad81a..d413f05d 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 3af092a2..ff91265d 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 4027e849..5067075b 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 370e741c..4d6abd70 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 6fd9903e..076b36b3 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 3e25002f..05005dc6 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 320f61bc..bf434a49 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 7999c9b7..75132d54 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 d12d45e3..18c90750 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 6552b4c4..9447c259 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 7db20c2b..8280a5b5 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 b1973c88..dd1b36f0 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 44a5d4b0..db8de6db 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 59b2b4d3..13146ef4 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 e85e7003..bf11fe8c 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 5173d31f..b2fe8dc7 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 dbc5fe6b..d7cb107e 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 22d71b77..9280c307 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 2d220036..5f147660 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 458c443a..d4e78a2c 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 b64e9273..aeabf595 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 0a55e75a..501be273 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 df6ef70f..b9432865 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 0025e0f5..25e74b46 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 2546dafa..329c7eac 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 96fa33e4..c583841f 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 80fa43fc..766395f1 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 1607682c..a4924611 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 affbd7d5..c3310076 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 d2054a3e..0b5a2d4d 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 c28c58c4..7fa4ed35 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 f0768941..a3a26d4b 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))