From 8bde89cc5874e0b4ca193ac760ba0e176c22ad8a Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 19 Aug 2014 00:12:14 +0200 Subject: [PATCH] Fix the remaining issues with the StatementElement.next refactoring. --- jedi/evaluate/helpers.py | 3 ++- test/test_api/test_call_signatures.py | 3 +++ test/test_evaluate/test_precedence.py | 2 +- test/test_regression.py | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/jedi/evaluate/helpers.py b/jedi/evaluate/helpers.py index 0b1d0307..88a2fde8 100644 --- a/jedi/evaluate/helpers.py +++ b/jedi/evaluate/helpers.py @@ -106,9 +106,10 @@ def call_signature_array_for_pos(stmt, pos): def search_call(call, pos, origin_call=None): tup = None, 0, None - if call.next is not None: + while call.next is not None and tup[0] is None: method = search_array if isinstance(call.next, pr.Array) else search_call tup = method(call.next, pos, origin_call or call) + call = call.next return tup if stmt.start_pos >= pos >= stmt.end_pos: diff --git a/test/test_api/test_call_signatures.py b/test/test_api/test_call_signatures.py index 12a575ee..862b57a8 100644 --- a/test/test_api/test_call_signatures.py +++ b/test/test_api/test_call_signatures.py @@ -24,6 +24,9 @@ class TestCallSignatures(TestCase): def test_simple(self): run = self._run_simple + s7 = "str().upper().center(" + s8 = "str(int[zip(" + run(s7, 'center', 0) # simple s1 = "sorted(a, str(" diff --git a/test/test_evaluate/test_precedence.py b/test/test_evaluate/test_precedence.py index 90fc3e0e..b91f8892 100644 --- a/test/test_evaluate/test_precedence.py +++ b/test/test_evaluate/test_precedence.py @@ -8,7 +8,7 @@ def parse_tree(statement_string, is_slice=False): stmt = p.module.statements[0] if is_slice: # get the part of the execution that is the slice - stmt = stmt.expression_list()[0].execution[0] + stmt = stmt.expression_list()[0].next[0] iterable = stmt.expression_list() pr = precedence.create_precedence(iterable) if isinstance(pr, precedence.Precedence): diff --git a/test/test_regression.py b/test/test_regression.py index efed922f..e42a257e 100644 --- a/test/test_regression.py +++ b/test/test_regression.py @@ -104,7 +104,7 @@ class TestRegression(TestCase): parser = Parser(s) for i, s in enumerate(parser.module.statements, 3): for c in s.expression_list(): - self.assertEqual(c.execution.end_pos[1], i) + self.assertEqual(c.next.end_pos[1], i) def check_definition_by_marker(self, source, after_cursor, names): r"""