forked from Rust-related/RustPython
Merge pull request #5405 from crazymerlyn/fix-set-intersection-update
Fix set intersection_update implementation
This commit is contained in:
2
Lib/test/test_weakset.py
vendored
2
Lib/test/test_weakset.py
vendored
@@ -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
|
||||
|
||||
@@ -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(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user