@@ -224,35 +224,33 @@ private StatementNode getWriteNode(String name, FrameSlot slot, ExpressionNode r
224
224
return factory .createWriteLocal (right , slot );
225
225
}
226
226
227
- private StatementNode getWriteNode (String name , Function <FrameSlot , ReadArgumentNode > getReadNode ) {
228
- FrameSlot slot = currentScope .findFrameSlot (name );
229
- ExpressionNode right = getReadNode .apply (slot ).asExpression ();
230
-
231
- return getWriteNode (name , slot , right );
227
+ private StatementNode getWriteNode (String name , Function <Integer , ReadArgumentNode > getReadNode ) {
228
+ ExpressionNode right = getReadNode .apply (currentScope .getVariableIndex (name )).asExpression ();
229
+ return getWriteNode (name , currentScope .findFrameSlot (name ), right );
232
230
}
233
231
234
232
public StatementNode getWriteArgumentToLocal (String name ) {
235
- return getWriteNode (name , slot -> ReadIndexedArgumentNode .create (slot . getIndex () ));
233
+ return getWriteNode (name , index -> ReadIndexedArgumentNode .create (index ));
236
234
}
237
235
238
236
public StatementNode getWriteKeywordArgumentToLocal (String name , ReadDefaultArgumentNode readDefaultArgumentNode ) {
239
- return getWriteNode (name , slot -> ReadKeywordNode .create (name , slot . getIndex () , readDefaultArgumentNode ));
237
+ return getWriteNode (name , index -> ReadKeywordNode .create (name , index , readDefaultArgumentNode ));
240
238
}
241
239
242
240
public StatementNode getWriteRequiredKeywordArgumentToLocal (String name ) {
243
- return getWriteNode (name , slot -> ReadKeywordNode .create (name ));
241
+ return getWriteNode (name , index -> ReadKeywordNode .create (name ));
244
242
}
245
243
246
244
public StatementNode getWriteRequiredKeywordArgumentToLocal (String name , ReadDefaultArgumentNode readDefaultArgumentNode ) {
247
- return getWriteNode (name , slot -> ReadKeywordNode .create (name , readDefaultArgumentNode ));
245
+ return getWriteNode (name , index -> ReadKeywordNode .create (name , readDefaultArgumentNode ));
248
246
}
249
247
250
248
public StatementNode getWriteVarArgsToLocal (String name ) {
251
- return getWriteNode (name , slot -> ReadVarArgsNode .create (slot . getIndex () ));
249
+ return getWriteNode (name , index -> ReadVarArgsNode .create (index ));
252
250
}
253
251
254
252
public StatementNode getWriteKwArgsToLocal (String name , String [] names ) {
255
- return getWriteNode (name , slot -> ReadVarKeywordsNode .createForUserFunction (names ));
253
+ return getWriteNode (name , index -> ReadVarKeywordsNode .createForUserFunction (names ));
256
254
}
257
255
258
256
static ScopeInfo findVariableScope (ScopeInfo enclosingScope , String identifier ) {
0 commit comments