From 22b367952976cf877ad84dbf3d36e02fbfb76838 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Fri, 15 Oct 2021 05:45:54 +0900 Subject: [PATCH] as_mapping never fails --- stdlib/src/array.rs | 6 +++--- vm/src/builtins/bytearray.rs | 6 +++--- vm/src/builtins/bytes.rs | 6 +++--- vm/src/builtins/dict.rs | 6 +++--- vm/src/builtins/list.rs | 6 +++--- vm/src/builtins/mappingproxy.rs | 6 +++--- vm/src/builtins/memory.rs | 6 +++--- vm/src/builtins/range.rs | 6 +++--- vm/src/builtins/tuple.rs | 6 +++--- vm/src/types/slot.rs | 4 ++-- 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/stdlib/src/array.rs b/stdlib/src/array.rs index ddc651040..bd5837dce 100644 --- a/stdlib/src/array.rs +++ b/stdlib/src/array.rs @@ -1253,12 +1253,12 @@ mod array { } impl AsMapping for PyArray { - fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyResult { - Ok(PyMappingMethods { + fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyMappingMethods { + PyMappingMethods { length: Some(Self::length), subscript: Some(Self::subscript), ass_subscript: Some(Self::ass_subscript), - }) + } } fn length(zelf: PyObjectRef, vm: &VirtualMachine) -> PyResult { diff --git a/vm/src/builtins/bytearray.rs b/vm/src/builtins/bytearray.rs index 2a65036ab..9b91061da 100644 --- a/vm/src/builtins/bytearray.rs +++ b/vm/src/builtins/bytearray.rs @@ -756,12 +756,12 @@ impl<'a> BufferResizeGuard<'a> for PyByteArray { } impl AsMapping for PyByteArray { - fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyResult { - Ok(PyMappingMethods { + fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyMappingMethods { + PyMappingMethods { length: Some(Self::length), subscript: Some(Self::subscript), ass_subscript: Some(Self::ass_subscript), - }) + } } #[inline] diff --git a/vm/src/builtins/bytes.rs b/vm/src/builtins/bytes.rs index 53aa561ef..5131e9abd 100644 --- a/vm/src/builtins/bytes.rs +++ b/vm/src/builtins/bytes.rs @@ -569,12 +569,12 @@ impl BufferInternal for PyRef { } impl AsMapping for PyBytes { - fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyResult { - Ok(PyMappingMethods { + fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyMappingMethods { + PyMappingMethods { length: Some(Self::length), subscript: Some(Self::subscript), ass_subscript: None, - }) + } } #[inline] diff --git a/vm/src/builtins/dict.rs b/vm/src/builtins/dict.rs index b3d7d7802..17d799880 100644 --- a/vm/src/builtins/dict.rs +++ b/vm/src/builtins/dict.rs @@ -416,12 +416,12 @@ impl PyDict { } impl AsMapping for PyDict { - fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyResult { - Ok(PyMappingMethods { + fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyMappingMethods { + PyMappingMethods { length: Some(Self::length), subscript: Some(Self::subscript), ass_subscript: Some(Self::ass_subscript), - }) + } } #[inline] diff --git a/vm/src/builtins/list.rs b/vm/src/builtins/list.rs index 97af1233d..5ed4f8620 100644 --- a/vm/src/builtins/list.rs +++ b/vm/src/builtins/list.rs @@ -418,12 +418,12 @@ impl PyList { } impl AsMapping for PyList { - fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyResult { - Ok(PyMappingMethods { + fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyMappingMethods { + PyMappingMethods { length: Some(Self::length), subscript: Some(Self::subscript), ass_subscript: Some(Self::ass_subscript), - }) + } } #[inline] diff --git a/vm/src/builtins/mappingproxy.rs b/vm/src/builtins/mappingproxy.rs index e4e386f39..9df9c0b7e 100644 --- a/vm/src/builtins/mappingproxy.rs +++ b/vm/src/builtins/mappingproxy.rs @@ -151,12 +151,12 @@ impl PyMappingProxy { } impl AsMapping for PyMappingProxy { - fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyResult { - Ok(PyMappingMethods { + fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyMappingMethods { + PyMappingMethods { length: None, subscript: Some(Self::subscript), ass_subscript: None, - }) + } } #[inline] diff --git a/vm/src/builtins/memory.rs b/vm/src/builtins/memory.rs index 7ebdb4910..56b87f846 100644 --- a/vm/src/builtins/memory.rs +++ b/vm/src/builtins/memory.rs @@ -737,12 +737,12 @@ impl BufferInternal for PyRef { } impl AsMapping for PyMemoryView { - fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyResult { - Ok(PyMappingMethods { + fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyMappingMethods { + PyMappingMethods { length: Some(Self::length), subscript: Some(Self::subscript), ass_subscript: Some(Self::ass_subscript), - }) + } } #[inline] diff --git a/vm/src/builtins/range.rs b/vm/src/builtins/range.rs index 751b0b79d..96e209e04 100644 --- a/vm/src/builtins/range.rs +++ b/vm/src/builtins/range.rs @@ -377,12 +377,12 @@ impl PyRange { } impl AsMapping for PyRange { - fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyResult { - Ok(PyMappingMethods { + fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyMappingMethods { + PyMappingMethods { length: Some(Self::length), subscript: Some(Self::subscript), ass_subscript: None, - }) + } } #[inline] diff --git a/vm/src/builtins/tuple.rs b/vm/src/builtins/tuple.rs index 3f44c75ce..e73314342 100644 --- a/vm/src/builtins/tuple.rs +++ b/vm/src/builtins/tuple.rs @@ -306,12 +306,12 @@ impl PyTuple { } impl AsMapping for PyTuple { - fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyResult { - Ok(PyMappingMethods { + fn as_mapping(_zelf: &PyRef, _vm: &VirtualMachine) -> PyMappingMethods { + PyMappingMethods { length: Some(Self::length), subscript: Some(Self::subscript), ass_subscript: None, - }) + } } #[inline] diff --git a/vm/src/types/slot.rs b/vm/src/types/slot.rs index 39d4e4ad9..08898374c 100644 --- a/vm/src/types/slot.rs +++ b/vm/src/types/slot.rs @@ -767,7 +767,7 @@ pub trait AsMapping: PyValue { let zelf = zelf .downcast_ref() .ok_or_else(|| vm.new_type_error("unexpected payload for as_mapping".to_owned()))?; - Self::as_mapping(zelf, vm) + Ok(Self::as_mapping(zelf, vm)) } #[inline] @@ -792,7 +792,7 @@ pub trait AsMapping: PyValue { }) } - fn as_mapping(zelf: &PyRef, vm: &VirtualMachine) -> PyResult; + fn as_mapping(zelf: &PyRef, vm: &VirtualMachine) -> PyMappingMethods; fn length(zelf: PyObjectRef, _vm: &VirtualMachine) -> PyResult;