diff --git a/tests/snippets/memoryview.py b/tests/snippets/memoryview.py index ebf27a9a6..56843696f 100644 --- a/tests/snippets/memoryview.py +++ b/tests/snippets/memoryview.py @@ -4,3 +4,5 @@ a = memoryview(obj) assert a.obj == obj assert a[2:3] == b"c" + +assert hash(obj) == hash(a) diff --git a/vm/src/obj/objmemory.rs b/vm/src/obj/objmemory.rs index bb2ff9fe2..842bb233f 100644 --- a/vm/src/obj/objmemory.rs +++ b/vm/src/obj/objmemory.rs @@ -34,6 +34,11 @@ impl PyMemoryView { self.obj_ref.clone() } + #[pymethod(name = "__hash__")] + fn hash(&self, vm: &VirtualMachine) -> PyResult { + vm.call_method(&self.obj_ref, "__hash__", vec![]) + } + #[pymethod(name = "__getitem__")] fn getitem(&self, needle: PyObjectRef, vm: &VirtualMachine) -> PyResult { vm.call_method(&self.obj_ref, "__getitem__", vec![needle])