Skip to content

Commit 4b49d7d

Browse files
committed
partial slice literal
1 parent 92f5dee commit 4b49d7d

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/subscript/SliceLiteralNode.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929

3030
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
3131
import com.oracle.graal.python.builtins.objects.PNone;
32+
import com.oracle.graal.python.builtins.objects.function.PArguments;
3233
import com.oracle.graal.python.builtins.objects.ints.PInt;
34+
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
3335
import com.oracle.graal.python.builtins.objects.slice.PSlice;
3436
import com.oracle.graal.python.nodes.PNode;
3537
import com.oracle.graal.python.nodes.PNodeWithContext;
@@ -48,6 +50,7 @@
4850
import com.oracle.truffle.api.dsl.Specialization;
4951
import com.oracle.truffle.api.dsl.TypeSystemReference;
5052
import com.oracle.truffle.api.frame.VirtualFrame;
53+
import com.oracle.truffle.api.library.CachedLibrary;
5154
import com.oracle.truffle.api.profiles.BranchProfile;
5255

5356
@NodeChild(value = "first", type = ExpressionNode.class)
@@ -169,12 +172,12 @@ int doPInt(PInt i) {
169172
}
170173
}
171174

172-
@Specialization
175+
@Specialization(replaces = {"doBoolean", "doInt", "doLong", "doPInt"}, limit = "getCallSiteInlineCacheMaxDepth()")
173176
int doGeneric(VirtualFrame frame, Object i,
174-
@Cached("createCastToIndex()") CastToIndexNode castToIndexNode,
177+
@CachedLibrary("i") PythonObjectLibrary lib,
175178
@Cached IsBuiltinClassProfile errorProfile) {
176179
try {
177-
return castToIndexNode.execute(frame, i);
180+
return lib.asIndexWithState(i, PArguments.getThreadState(frame));
178181
} catch (PException e) {
179182
e.expect(PythonBuiltinClassType.OverflowError, errorProfile);
180183
return overflowValue;

0 commit comments

Comments
 (0)