diff --git a/vm/src/builtins/int.rs b/vm/src/builtins/int.rs index cf899c069..5774ea7f0 100644 --- a/vm/src/builtins/int.rs +++ b/vm/src/builtins/int.rs @@ -79,8 +79,8 @@ impl PyValue for PyInt { vm.ctx.new_int(self.value) } - fn special_retrieve(vm: &VirtualMachine, obj: PyObjectRef) -> Option>> { - vm.to_index_opt(obj) + fn special_retrieve(vm: &VirtualMachine, obj: &PyObjectRef) -> Option>> { + Some(vm.to_index(obj)) } } diff --git a/vm/src/pyobject.rs b/vm/src/pyobject.rs index 6add33741..d70fff15f 100644 --- a/vm/src/pyobject.rs +++ b/vm/src/pyobject.rs @@ -390,7 +390,7 @@ where obj.downcast() .map_err(|obj| pyref_payload_error(vm, class, obj)) } else { - T::special_retrieve(vm, obj.clone()) + T::special_retrieve(vm, &obj) .unwrap_or_else(|| Err(pyref_type_error(vm, class, obj))) } } @@ -928,7 +928,7 @@ pub trait PyValue: fmt::Debug + PyThreadingConstraint + Sized + 'static { } #[inline(always)] - fn special_retrieve(vm: &VirtualMachine, obj: PyObjectRef) -> Option>> { + fn special_retrieve(vm: &VirtualMachine, obj: &PyObjectRef) -> Option>> { let _ = vm; let _ = obj; None