From 920d02e3daf19134fc4248a8d4867d16ef1ea5e8 Mon Sep 17 00:00:00 2001 From: David Halter Date: Sun, 30 Sep 2012 15:04:28 +0200 Subject: [PATCH] dynamic param completion bugfixes --- jedi/dynamic.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/jedi/dynamic.py b/jedi/dynamic.py index 23671256..e7663275 100644 --- a/jedi/dynamic.py +++ b/jedi/dynamic.py @@ -122,8 +122,10 @@ def search_params(param): calls = _scan_array(stmt.get_assignment_calls(), func_name) for c in calls: # no execution means that params cannot be set - if c.execution: - evaluate.follow_call(c) + call_path = c.generate_call_path() + pos = c.start_pos + scope = stmt.parent() + evaluate.follow_call_path(call_path, scope, pos) return listener.param_possibilities result = [] @@ -184,14 +186,15 @@ def _scan_array(arr, search_name): if isinstance(s, parsing.Array): result += _scan_array(s, search_name) elif isinstance(s, parsing.Call): - while s is not None: - n = s.name + s_new = s + while s_new is not None: + n = s_new.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 + if s_new.execution is not None: + result += _scan_array(s_new.execution, search_name) + s_new = s_new.next return result