|
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