Fix two issues in the weak set implementation.
diff --git a/Lib/_weakrefset.py b/Lib/_weakrefset.py
index e56ac04..a6827e8 100644
--- a/Lib/_weakrefset.py
+++ b/Lib/_weakrefset.py
@@ -41,7 +41,10 @@
def pop(self):
while True:
- itemref = self.data.pop()
+ try:
+ itemref = self.data.pop()
+ except KeyError:
+ raise KeyError('pop from empty WeakSet')
item = itemref()
if item is not None:
return item
@@ -107,5 +110,5 @@
__ixor__ = symmetric_difference_update
def union(self, other):
- self._apply_mutate(other, self.data.union)
+ return self._apply(other, self.data.union)
__or__ = union