equal
deleted
inserted
replaced
743 for term in terms: |
743 for term in terms: |
744 if isinstance(term, Variable) \ |
744 if isinstance(term, Variable) \ |
745 and self._need_ext_source_access(term, rel): |
745 and self._need_ext_source_access(term, rel): |
746 self.needsplit = True |
746 self.needsplit = True |
747 return |
747 return |
|
748 else: |
|
749 # remove sources only accessing to constant nodes |
|
750 for source, terms in self._sourcesterms.items(): |
|
751 if source is self.system_source: |
|
752 continue |
|
753 if not any(x for x in terms if not isinstance(x, Constant)): |
|
754 del self._sourcesterms[source] |
|
755 if len(self._sourcesterms) < 2: |
|
756 self.needsplit = False |
748 |
757 |
749 @cached |
758 @cached |
750 def _need_ext_source_access(self, var, rel): |
759 def _need_ext_source_access(self, var, rel): |
751 if not var._q_invariant: |
760 if not var._q_invariant: |
752 return True |
761 return True |