Only call filter() to remove ignored dependencies if something has been Ignore()ed...
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 23 Jan 2005 14:11:50 +0000 (14:11 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 23 Jan 2005 14:11:50 +0000 (14:11 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1221 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Node/__init__.py

index 6b4c996b072f62a0fda990aa744c1f5efb9b3bbd..f1150c4f600311d8ea9b8b0e9aacbddcc8c4e586 100644 (file)
@@ -584,13 +584,13 @@ class Node:
         executor = self.get_executor()
 
         sourcelist = executor.get_source_binfo(calc)
+        depends = self.depends
+        implicit = self.implicit or []
 
-        sourcelist = filter(lambda t, s=self: s.do_not_ignore(t[0]), sourcelist)
-        depends = filter(self.do_not_ignore, self.depends)
-        if self.implicit is None:
-            implicit = []
-        else:
-            implicit = filter(self.do_not_ignore, self.implicit)
+        if self.ignore:
+            sourcelist = filter(lambda t, s=self: s.do_not_ignore(t[0]), sourcelist)
+            depends = filter(self.do_not_ignore, depends)
+            implicit = filter(self.do_not_ignore, implicit)
 
         def calc_signature(node, calc=calc):
             return node.calc_signature(calc)
@@ -761,7 +761,10 @@ class Node:
 
     def _children_get(self):
         "__cacheable__"
-        return filter(self.do_not_ignore, self.all_children(scan=0))
+        children = self.all_children(scan=0)
+        if self.ignore:
+            children = filter(self.do_not_ignore, children)
+        return children
         
     def children(self, scan=1):
         """Return a list of the node's direct children, minus those