Merge pull request #5405 from crazymerlyn/fix-set-intersection-update

Fix set intersection_update implementation
This commit is contained in:
Noa
2024-09-19 21:21:16 -05:00
committed by GitHub
2 changed files with 3 additions and 11 deletions

View File

@@ -322,8 +322,6 @@ class TestWeakSet(unittest.TestCase):
else:
self.assertNotIn(c, self.s)
# TODO: RUSTPYTHON
@unittest.expectedFailure
def test_inplace_on_self(self):
t = self.s.copy()
t |= t

View File

@@ -391,16 +391,10 @@ impl PySetInner {
others: impl std::iter::Iterator<Item = ArgIterable>,
vm: &VirtualMachine,
) -> PyResult<()> {
let mut temp_inner = self.copy();
let temp_inner = self.fold_op(others, PySetInner::intersection, vm)?;
self.clear();
for iterable in others {
for item in iterable.iter(vm)? {
let obj = item?;
if temp_inner.contains(&obj, vm)? {
self.add(obj, vm)?;
}
}
temp_inner = self.copy()
for obj in temp_inner.elements() {
self.add(obj, vm)?;
}
Ok(())
}