@@ -203,6 +203,19 @@ public class YARPTranslator extends AbstractNodeVisitor<RubyNode> {
203
203
private boolean translatingNextExpression = false ;
204
204
private boolean translatingForStatement = false ;
205
205
206
+ private static final String [] numberedParameterNames = {
207
+ null ,
208
+ "_1" ,
209
+ "_2" ,
210
+ "_3" ,
211
+ "_4" ,
212
+ "_5" ,
213
+ "_6" ,
214
+ "_7" ,
215
+ "_8" ,
216
+ "_9"
217
+ };
218
+
206
219
public YARPTranslator (
207
220
RubyLanguage language ,
208
221
TranslatorEnvironment environment ,
@@ -473,7 +486,8 @@ private RubyNode translateBlockAndLambda(Nodes.Node node, Nodes.Node parametersN
473
486
final var requireds = new Nodes .RequiredParameterNode [maximum ];
474
487
475
488
for (int i = 1 ; i <= maximum ; i ++) {
476
- requireds [i - 1 ] = new Nodes .RequiredParameterNode ("_" + i , 0 , 0 );
489
+ String name = numberedParameterNames [i ];
490
+ requireds [i - 1 ] = new Nodes .RequiredParameterNode (name , 0 , 0 );
477
491
}
478
492
479
493
parameters = new Nodes .ParametersNode (requireds , EMPTY_NODE_ARRAY , null , EMPTY_NODE_ARRAY ,
@@ -2125,18 +2139,15 @@ public RubyNode visitMatchWriteNode(Nodes.MatchWriteNode node) {
2125
2139
assert node .call .name .equals ("=~" );
2126
2140
assert node .call .arguments != null ;
2127
2141
assert node .call .arguments .arguments .length == 1 ;
2128
-
2129
2142
assert node .targets .length > 0 ;
2130
- for (var t : node .targets ) {
2131
- assert t instanceof Nodes .LocalVariableTargetNode ;
2132
- }
2133
2143
2134
2144
RubyNode matchNode = node .call .accept (this );
2135
2145
2136
2146
final int numberOfNames = node .targets .length ;
2137
2147
String [] names = new String [numberOfNames ];
2138
2148
2139
2149
for (int i = 0 ; i < numberOfNames ; i ++) {
2150
+ // Nodes.LocalVariableTargetNode is the only expected node here
2140
2151
names [i ] = ((Nodes .LocalVariableTargetNode ) node .targets [i ]).name ;
2141
2152
}
2142
2153
0 commit comments