Skip to content

Commit 34d4f27

Browse files
committed
remove usage of deprecated method
1 parent 11e3db4 commit 34d4f27

File tree

2 files changed

+22
-11
lines changed

2 files changed

+22
-11
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/parser/ScopeInfo.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
*/
2626
package com.oracle.graal.python.parser;
2727

28+
import java.util.ArrayList;
2829
import java.util.Collection;
2930
import java.util.HashSet;
3031
import java.util.LinkedHashSet;
@@ -51,6 +52,7 @@ public enum ScopeKind {
5152

5253
private final String scopeId;
5354
private final FrameDescriptor frameDescriptor;
55+
private final ArrayList<String> identifierToIndex;
5456
private ScopeKind scopeKind;
5557
private final ScopeInfo parent;
5658

@@ -86,6 +88,7 @@ public ScopeInfo(String scopeId, ScopeKind kind, FrameDescriptor frameDescriptor
8688
this.scopeKind = kind;
8789
this.frameDescriptor = frameDescriptor == null ? new FrameDescriptor() : frameDescriptor;
8890
this.parent = parent;
91+
this.identifierToIndex = new ArrayList<>();
8992
// register current scope as child to parent scope
9093
if (this.parent != null) {
9194
this.nextChildScope = this.parent.firstChildScope;
@@ -143,6 +146,7 @@ private void createSlotIfNotPresent(String identifier) {
143146
assert identifier != null : "identifier is null!";
144147
FrameSlot frameSlot = this.getFrameDescriptor().findFrameSlot(identifier);
145148
if (frameSlot == null) {
149+
identifierToIndex.add(identifier);
146150
this.getFrameDescriptor().addFrameSlot(identifier);
147151
}
148152
}
@@ -267,4 +271,13 @@ public String toString() {
267271
CompilerAsserts.neverPartOfCompilation();
268272
return scopeKind.toString() + " " + scopeId;
269273
}
274+
275+
public Integer getVariableIndex(String name) {
276+
for (int i = 0; i < identifierToIndex.size(); i++) {
277+
if (identifierToIndex.get(i).equals(name)) {
278+
return i;
279+
}
280+
}
281+
throw new IllegalStateException("Cannot find argument for name " + name + " in scope " + getScopeId());
282+
}
270283
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/parser/TranslationEnvironment.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -224,35 +224,33 @@ private StatementNode getWriteNode(String name, FrameSlot slot, ExpressionNode r
224224
return factory.createWriteLocal(right, slot);
225225
}
226226

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);
232230
}
233231

234232
public StatementNode getWriteArgumentToLocal(String name) {
235-
return getWriteNode(name, slot -> ReadIndexedArgumentNode.create(slot.getIndex()));
233+
return getWriteNode(name, index -> ReadIndexedArgumentNode.create(index));
236234
}
237235

238236
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));
240238
}
241239

242240
public StatementNode getWriteRequiredKeywordArgumentToLocal(String name) {
243-
return getWriteNode(name, slot -> ReadKeywordNode.create(name));
241+
return getWriteNode(name, index -> ReadKeywordNode.create(name));
244242
}
245243

246244
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));
248246
}
249247

250248
public StatementNode getWriteVarArgsToLocal(String name) {
251-
return getWriteNode(name, slot -> ReadVarArgsNode.create(slot.getIndex()));
249+
return getWriteNode(name, index -> ReadVarArgsNode.create(index));
252250
}
253251

254252
public StatementNode getWriteKwArgsToLocal(String name, String[] names) {
255-
return getWriteNode(name, slot -> ReadVarKeywordsNode.createForUserFunction(names));
253+
return getWriteNode(name, index -> ReadVarKeywordsNode.createForUserFunction(names));
256254
}
257255

258256
static ScopeInfo findVariableScope(ScopeInfo enclosingScope, String identifier) {

0 commit comments

Comments
 (0)