|
47 | 47 | import static com.oracle.graal.python.builtins.objects.cext.common.CExtContext.isClassOrStaticMethod;
|
48 | 48 | import static com.oracle.graal.python.nodes.ErrorMessages.BAD_ARG_TO_INTERNAL_FUNC_WAS_S_P;
|
49 | 49 | import static com.oracle.graal.python.nodes.ErrorMessages.HASH_MISMATCH;
|
| 50 | +import static com.oracle.graal.python.nodes.ErrorMessages.NATIVE_S_SUBTYPES_NOT_IMPLEMENTED; |
50 | 51 | import static com.oracle.graal.python.nodes.SpecialAttributeNames.__DOC__;
|
51 | 52 | import static com.oracle.graal.python.nodes.SpecialAttributeNames.__MODULE__;
|
52 | 53 | import static com.oracle.graal.python.nodes.SpecialAttributeNames.__NAME__;
|
53 | 54 | import static com.oracle.graal.python.nodes.SpecialAttributeNames.__PACKAGE__;
|
54 | 55 | import static com.oracle.graal.python.nodes.SpecialMethodNames.ITEMS;
|
55 | 56 | import static com.oracle.graal.python.nodes.SpecialMethodNames.KEYS;
|
56 |
| -import static com.oracle.graal.python.nodes.SpecialMethodNames.__NEW__; |
57 | 57 | import static com.oracle.graal.python.nodes.SpecialMethodNames.VALUES;
|
| 58 | +import static com.oracle.graal.python.nodes.SpecialMethodNames.__NEW__; |
58 | 59 | import static com.oracle.graal.python.runtime.exception.PythonErrorType.OverflowError;
|
59 | 60 | import static com.oracle.graal.python.util.PythonUtils.EMPTY_BYTE_ARRAY;
|
60 | 61 | import static com.oracle.graal.python.util.PythonUtils.EMPTY_OBJECT_ARRAY;
|
|
213 | 214 | import com.oracle.graal.python.builtins.objects.getsetdescriptor.GetSetDescriptor;
|
214 | 215 | import com.oracle.graal.python.builtins.objects.ints.PInt;
|
215 | 216 | import com.oracle.graal.python.builtins.objects.iterator.PSequenceIterator;
|
| 217 | +import com.oracle.graal.python.builtins.objects.list.ListBuiltins; |
216 | 218 | import com.oracle.graal.python.builtins.objects.list.PList;
|
217 | 219 | import com.oracle.graal.python.builtins.objects.memoryview.BufferLifecycleManager;
|
218 | 220 | import com.oracle.graal.python.builtins.objects.memoryview.MemoryViewNodes;
|
|
253 | 255 | import com.oracle.graal.python.lib.PySequenceCheckNode;
|
254 | 256 | import com.oracle.graal.python.nodes.BuiltinNames;
|
255 | 257 | import com.oracle.graal.python.nodes.ErrorMessages;
|
256 |
| -import static com.oracle.graal.python.nodes.ErrorMessages.NATIVE_S_SUBTYPES_NOT_IMPLEMENTED; |
257 | 258 | import com.oracle.graal.python.nodes.PGuards;
|
258 | 259 | import com.oracle.graal.python.nodes.PNodeWithContext;
|
259 | 260 | import com.oracle.graal.python.nodes.PRaiseNode;
|
@@ -4157,6 +4158,23 @@ protected static SequenceStorageNodes.SetItemNode createSetItem() {
|
4157 | 4158 | }
|
4158 | 4159 | }
|
4159 | 4160 |
|
| 4161 | + @Builtin(name = "PyList_Reverse", minNumOfPositionalArgs = 1) |
| 4162 | + @GenerateNodeFactory |
| 4163 | + abstract static class PyListReverse extends PythonUnaryBuiltinNode { |
| 4164 | + @Specialization |
| 4165 | + int reverse(VirtualFrame frame, PList self, |
| 4166 | + @Cached ListBuiltins.ListReverseNode reverseNode, |
| 4167 | + @Cached TransformExceptionToNativeNode transformExceptionToNativeNode) { |
| 4168 | + try { |
| 4169 | + reverseNode.execute(frame, self); |
| 4170 | + return 0; |
| 4171 | + } catch (PException e) { |
| 4172 | + transformExceptionToNativeNode.execute(frame, e); |
| 4173 | + return -1; |
| 4174 | + } |
| 4175 | + } |
| 4176 | + } |
| 4177 | + |
4160 | 4178 | @Builtin(name = "PySequence_GetItem", minNumOfPositionalArgs = 3, declaresExplicitSelf = true)
|
4161 | 4179 | @GenerateNodeFactory
|
4162 | 4180 | abstract static class PySequenceGetItem extends PythonTernaryBuiltinNode {
|
|
0 commit comments