--- a/server/msplanner.py Thu Jan 15 14:39:19 2009 +0100
+++ b/server/msplanner.py Thu Jan 15 15:59:08 2009 +0100
@@ -288,17 +288,21 @@
flag = 0
for v in crossvars:
if isinstance(v, Constant):
- self._sourcesvars[ssource][v] = set(self._solindices)
+ allsols = set(self._solindices)
+ try:
+ self._sourcesvars[ssource][v] = allsols
+ except KeyError:
+ self._sourcesvars[ssource] = {v: allsols}
if len(vsources[v]) == 1:
if iter(vsources[v]).next()[0].uri == 'system':
flag = 1
for ov in crossvars:
- if ov is not v and ov._q_invariant:
+ if ov is not v and (isinstance(ov, Constant) or ov._q_invariant):
ssset = frozenset((ssource,))
self._remove_sources(ov, vsources[ov] - ssset)
else:
for ov in crossvars:
- if ov is not v and ov._q_invariant:
+ if ov is not v and (isinstance(ov, Constant) or ov._q_invariant):
needsplit = False
break
else: