diff --git a/vm/src/builtins/bytearray.rs b/vm/src/builtins/bytearray.rs index c811c3efad..d0b6a8c0c5 100644 --- a/vm/src/builtins/bytearray.rs +++ b/vm/src/builtins/bytearray.rs @@ -545,11 +545,11 @@ impl PyByteArray { } #[pymethod(name = "splitlines")] - fn splitlines(&self, options: anystr::SplitLinesArgs, vm: &VirtualMachine) -> PyResult { + fn splitlines(&self, options: anystr::SplitLinesArgs, vm: &VirtualMachine) -> PyObjectRef { let lines = self .borrow_value() .splitlines(options, |x| vm.ctx.new_bytearray(x.to_vec())); - Ok(vm.ctx.new_list(lines)) + vm.ctx.new_list(lines) } #[pymethod(name = "zfill")] @@ -607,9 +607,8 @@ impl PyByteArray { } #[pymethod(name = "reverse")] - fn reverse(&self) -> PyResult<()> { + fn reverse(&self) { self.borrow_value_mut().elements.reverse(); - Ok(()) } #[pymethod] diff --git a/vm/src/builtins/bytes.rs b/vm/src/builtins/bytes.rs index d0ea302674..6fb88de3ec 100644 --- a/vm/src/builtins/bytes.rs +++ b/vm/src/builtins/bytes.rs @@ -118,8 +118,8 @@ impl PyBytes { } #[pymethod(name = "__sizeof__")] - fn sizeof(&self) -> PyResult { - Ok(size_of::() + self.inner.elements.len() * size_of::()) + fn sizeof(&self) -> usize { + size_of::() + self.inner.elements.len() * size_of::() } #[pymethod(name = "__add__")] @@ -387,11 +387,11 @@ impl PyBytes { } #[pymethod(name = "splitlines")] - fn splitlines(&self, options: anystr::SplitLinesArgs, vm: &VirtualMachine) -> PyResult { + fn splitlines(&self, options: anystr::SplitLinesArgs, vm: &VirtualMachine) -> PyObjectRef { let lines = self .inner .splitlines(options, |x| vm.ctx.new_bytes(x.to_vec())); - Ok(vm.ctx.new_list(lines)) + vm.ctx.new_list(lines) } #[pymethod(name = "zfill")] diff --git a/vm/src/builtins/int.rs b/vm/src/builtins/int.rs index 064498674f..4af72d556f 100644 --- a/vm/src/builtins/int.rs +++ b/vm/src/builtins/int.rs @@ -570,11 +570,8 @@ impl PyInt { } #[pymethod(name = "as_integer_ratio")] - fn as_integer_ratio(&self, vm: &VirtualMachine) -> PyResult { - Ok(vm.ctx.new_tuple(vec![ - vm.ctx.new_bigint(&self.value), - vm.ctx.new_bigint(&BigInt::one()), - ])) + fn as_integer_ratio(&self, vm: &VirtualMachine) -> (PyObjectRef, BigInt) { + (vm.ctx.new_bigint(&self.value), BigInt::one()) } #[pymethod] diff --git a/vm/src/builtins/list.rs b/vm/src/builtins/list.rs index c77228de53..c2314e5e28 100644 --- a/vm/src/builtins/list.rs +++ b/vm/src/builtins/list.rs @@ -117,13 +117,13 @@ impl PyList { } #[pymethod(name = "__iadd__")] - fn iadd(zelf: PyRef, other: PyObjectRef, vm: &VirtualMachine) -> PyResult { + fn iadd(zelf: PyRef, other: PyObjectRef, vm: &VirtualMachine) -> PyObjectRef { if let Ok(new_elements) = vm.extract_elements(&other) { let mut e = new_elements; zelf.borrow_value_mut().append(&mut e); - Ok(zelf.into_object()) + zelf.into_object() } else { - Ok(vm.ctx.not_implemented()) + vm.ctx.not_implemented() } } diff --git a/vm/src/builtins/make_module.rs b/vm/src/builtins/make_module.rs index 2af6882af9..b3b40ce421 100644 --- a/vm/src/builtins/make_module.rs +++ b/vm/src/builtins/make_module.rs @@ -320,8 +320,8 @@ mod decl { } #[pyfunction] - fn globals(vm: &VirtualMachine) -> PyResult { - Ok(vm.current_globals().clone()) + fn globals(vm: &VirtualMachine) -> PyDictRef { + vm.current_globals().clone() } #[pyfunction] diff --git a/vm/src/builtins/module.rs b/vm/src/builtins/module.rs index 76ae4e3a3f..06aee7dacb 100644 --- a/vm/src/builtins/module.rs +++ b/vm/src/builtins/module.rs @@ -51,12 +51,7 @@ impl PyModule { } #[pymethod(magic)] - fn init( - zelf: PyRef, - name: PyStrRef, - doc: OptionalOption, - vm: &VirtualMachine, - ) -> PyResult<()> { + fn init(zelf: PyRef, name: PyStrRef, doc: OptionalOption, vm: &VirtualMachine) { debug_assert!(crate::pyobject::TypeProtocol::class(zelf.as_object()) .slots .flags @@ -67,7 +62,6 @@ impl PyModule { name.into_object(), doc.flatten().into_pyobject(vm), ); - Ok(()) } fn name(zelf: PyRef, vm: &VirtualMachine) -> Option { diff --git a/vm/src/builtins/object.rs b/vm/src/builtins/object.rs index 51f410b809..c4e9a5e65d 100644 --- a/vm/src/builtins/object.rs +++ b/vm/src/builtins/object.rs @@ -172,8 +172,8 @@ impl PyBaseObject { } #[pyclassmethod(magic)] - fn subclasshook(_args: FuncArgs, vm: &VirtualMachine) -> PyResult { - Ok(vm.ctx.not_implemented()) + fn subclasshook(_args: FuncArgs, vm: &VirtualMachine) -> PyObjectRef { + vm.ctx.not_implemented() } #[pyclassmethod(magic)] diff --git a/vm/src/builtins/pystr.rs b/vm/src/builtins/pystr.rs index 58e90a9ed3..650a679939 100644 --- a/vm/src/builtins/pystr.rs +++ b/vm/src/builtins/pystr.rs @@ -572,8 +572,8 @@ impl PyStr { } #[pymethod(name = "__rmod__")] - fn rmod(&self, _values: PyObjectRef, vm: &VirtualMachine) -> PyResult { - Ok(vm.ctx.not_implemented()) + fn rmod(&self, _values: PyObjectRef, vm: &VirtualMachine) -> PyObjectRef { + vm.ctx.not_implemented() } #[pymethod] diff --git a/vm/src/stdlib/zlib.rs b/vm/src/stdlib/zlib.rs index 36a7aeb90c..166c306c68 100644 --- a/vm/src/stdlib/zlib.rs +++ b/vm/src/stdlib/zlib.rs @@ -41,32 +41,24 @@ mod decl { /// Compute an Adler-32 checksum of data. #[pyfunction] - fn adler32(data: PyBytesRef, begin_state: OptionalArg, vm: &VirtualMachine) -> PyResult { + fn adler32(data: PyBytesRef, begin_state: OptionalArg) -> u32 { let data = data.borrow_value(); - let begin_state = begin_state.unwrap_or(1); let mut hasher = Adler32::from_value(begin_state as u32); hasher.update_buffer(data); - - let checksum: u32 = hasher.hash(); - - Ok(vm.ctx.new_int(checksum)) + hasher.hash() } /// Compute a CRC-32 checksum of data. #[pyfunction] - fn crc32(data: PyBytesRef, begin_state: OptionalArg, vm: &VirtualMachine) -> PyResult { + fn crc32(data: PyBytesRef, begin_state: OptionalArg) -> u32 { let data = data.borrow_value(); - let begin_state = begin_state.unwrap_or(0); let mut hasher = Crc32::new_with_initial(begin_state as u32); hasher.update(data); - - let checksum: u32 = hasher.finalize(); - - Ok(vm.ctx.new_int(checksum)) + hasher.finalize() } /// Returns a bytes object containing compressed data.