From e9a0f03019329fa3fa3cb7cad42a61c02391b18b Mon Sep 17 00:00:00 2001
From: Nicolas Dumazet <nicolas.dumazet@nexedi.com>
Date: Tue, 29 Dec 2009 02:49:22 +0000
Subject: [PATCH] sets: (A minus (A inter B)) can be be rewritten as (A minus
 B)

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@31508 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/Document/TradeCondition.py | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/product/ERP5/Document/TradeCondition.py b/product/ERP5/Document/TradeCondition.py
index 4952f17c78..2b6d191617 100644
--- a/product/ERP5/Document/TradeCondition.py
+++ b/product/ERP5/Document/TradeCondition.py
@@ -148,16 +148,15 @@ class TradeCondition(Path, Transformation, XMLMatrix):
           # it is possible, that specialised object cannot be specialised
           # anymore
           continue
-        intersection = set(child_specialised_value_list).intersection(\
+        difference = set(child_specialised_value_list).difference(\
             set(visited_trade_condition_list))
-        for model in child_specialised_value_list:
-          # don't add model that have already been visited. This permit to
-          # visit all the tree and to prevent having circular dependency
-          if model not in intersection:
-            specialise_value_list.append(model)
-            # only add those who matches the portal type given
-            if model in child_visited_trade_condition_list:
-              visited_trade_condition_list.append(model)
+        # don't add model that have already been visited. This permit to
+        # visit all the tree and to prevent having circular dependency
+        for model in difference:
+          specialise_value_list.append(model)
+          # only add those who matches the portal type given
+          if model in child_visited_trade_condition_list:
+            visited_trade_condition_list.append(model)
 
       return visited_trade_condition_list
 
-- 
2.30.9