From 4a23a1d533bd62cfccb7dcd6f01b1b27eb5bb2db Mon Sep 17 00:00:00 2001 From: David Halter Date: Fri, 14 Sep 2012 22:25:57 +0200 Subject: [PATCH] _scan_array didn't search for all names --- dynamic.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/dynamic.py b/dynamic.py index af3985c3..8c0de4f5 100644 --- a/dynamic.py +++ b/dynamic.py @@ -156,9 +156,14 @@ def _scan_array(arr, search_name): if isinstance(s, parsing.Array): result += _scan_array(s, search_name) elif isinstance(s, parsing.Call): - n = s.name - if isinstance(n, parsing.Name) and search_name in n.names: - result.append(s) + while s is not None: + n = s.name + if isinstance(n, parsing.Name) and search_name in n.names: + result.append(s) + + if s.execution is not None: + result += _scan_array(s.execution, search_name) + s = s.next return result #@dec @@ -169,7 +174,7 @@ def _check_array_additions(compare_array, module, is_list): >>> a = [""] >>> a.append(1) """ - if not settings.dynamic_array_additions: + if not settings.dynamic_array_additions or module.is_builtin(): return [] def check_calls(calls, add_name):