@@ -2280,29 +2280,26 @@ private ArgumentDescriptor[] parametersNodeToArgumentDescriptors(Nodes.Parameter
2280
2280
}
2281
2281
2282
2282
if (parametersNode .keyword_rest != null ) {
2283
- final ArgumentType type ;
2284
- final String name ;
2285
-
2286
2283
if (parametersNode .keyword_rest instanceof Nodes .KeywordRestParameterNode ) {
2287
- var keywordRestParameterNode = (Nodes .KeywordRestParameterNode ) parametersNode .keyword_rest ;
2288
- type = (keywordRestParameterNode .name == null ) ? ArgumentType .anonkeyrest : ArgumentType .keyrest ;
2284
+ final var keywordRestParameterNode = (Nodes .KeywordRestParameterNode ) parametersNode .keyword_rest ;
2289
2285
2290
- if (keywordRestParameterNode .name != null ) {
2291
- name = keywordRestParameterNode .name ;
2286
+ if (keywordRestParameterNode .name == null ) {
2287
+ descriptors .add (new ArgumentDescriptor (ArgumentType .anonkeyrest ,
2288
+ YARPDefNodeTranslator .DEFAULT_KEYWORD_REST_NAME ));
2292
2289
} else {
2293
- name = YARPDefNodeTranslator . DEFAULT_KEYWORD_REST_NAME ;
2290
+ descriptors . add ( new ArgumentDescriptor ( ArgumentType . keyrest , keywordRestParameterNode . name )) ;
2294
2291
}
2295
2292
} else if (parametersNode .keyword_rest instanceof Nodes .NoKeywordsParameterNode ) {
2296
- type = ArgumentType .keyrest ;
2297
- name = YARPLoadArgumentsTranslator . DEFAULT_NO_KEYWORD_REST_NAME ;
2293
+ final var descriptor = new ArgumentDescriptor ( ArgumentType .keyrest , YARPLoadArgumentsTranslator . DEFAULT_NO_KEYWORD_REST_NAME ) ;
2294
+ descriptors . add ( descriptor ) ;
2298
2295
} else {
2299
2296
throw CompilerDirectives .shouldNotReachHere ();
2300
2297
}
2301
-
2302
- descriptors .add (new ArgumentDescriptor (type , name ));
2303
2298
}
2304
2299
2305
2300
if (parametersNode .block != null ) {
2301
+ // we don't support yet Ruby 3.1's anonymous block parameter
2302
+ assert parametersNode .block .name != null ;
2306
2303
descriptors .add (new ArgumentDescriptor (ArgumentType .block , parametersNode .block .name ));
2307
2304
}
2308
2305
0 commit comments