| 1 | initial version |
The problem is this block in the code for Set:
try:
X = frozenset(X)
except TypeError:
return Set_object(X)
else:
return Set_object_enumerated(X)
When the entries of X are not hashable, frozenset(X) fails, but it still accesses X. If X is a generator, you lose the first entry of X this way. This change in sage.set.set might fix it:
diff --git a/src/sage/sets/set.py b/src/sage/sets/set.py
index 96e3b2ad7a..ff133a315e 100644
--- a/src/sage/sets/set.py
+++ b/src/sage/sets/set.py
@@ -198,11 +198,12 @@ def Set(X=None):
raise TypeError("Element has no defined underlying set")
try:
- X = frozenset(X)
+ Y = list(X)
+ Y = frozenset(Y)
except TypeError:
- return Set_object(X)
+ return Set_object(Y)
else:
- return Set_object_enumerated(X)
+ return Set_object_enumerated(Y)
class Set_base():
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.