From b197a178ead158ae78a402347da8225c8f90b049 Mon Sep 17 00:00:00 2001 From: snowapril Date: Wed, 22 Sep 2021 18:46:30 +0900 Subject: [PATCH] switch RangeIndex to PyObjectRef As `getitem` method in other types, get second argument as PyObjectRef. --- vm/src/builtins/range.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/vm/src/builtins/range.rs b/vm/src/builtins/range.rs index 2b24010846..df601bf1a6 100644 --- a/vm/src/builtins/range.rs +++ b/vm/src/builtins/range.rs @@ -334,8 +334,8 @@ impl PyRange { } #[pymethod(magic)] - fn getitem(&self, subscript: RangeIndex, vm: &VirtualMachine) -> PyResult { - match subscript { + fn getitem(&self, subscript: PyObjectRef, vm: &VirtualMachine) -> PyResult { + match RangeIndex::try_from_object(vm, subscript)? { RangeIndex::Slice(slice) => { let (mut substart, mut substop, mut substep) = slice.inner_indices(&self.compute_length(), vm)?; @@ -391,8 +391,7 @@ impl AsMapping for PyRange { #[inline] fn subscript(zelf: PyObjectRef, needle: PyObjectRef, vm: &VirtualMachine) -> PyResult { - Self::downcast_ref(&zelf, vm) - .map(|zelf| zelf.getitem(RangeIndex::try_from_object(vm, needle)?, vm))? + Self::downcast_ref(&zelf, vm).map(|zelf| zelf.getitem(needle, vm))? } #[inline]