From bf5acb4c7acda60325d252160f430de94cebb949 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 9 Feb 2016 18:47:48 +0100 Subject: [PATCH] once more: python 3.5 uses atom_expr node in many places where previous python would use power node --- jedi/evaluate/analysis.py | 2 +- jedi/evaluate/finder.py | 2 +- jedi/evaluate/sys_path.py | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/jedi/evaluate/analysis.py b/jedi/evaluate/analysis.py index 07e7c69a..87c961dd 100644 --- a/jedi/evaluate/analysis.py +++ b/jedi/evaluate/analysis.py @@ -174,7 +174,7 @@ def _check_for_exception_catch(evaluator, jedi_obj, exception, payload=None): def check_hasattr(node, suite): try: assert suite.start_pos <= jedi_obj.start_pos < suite.end_pos - assert node.type == 'power' + assert node.type == 'power' or node.type == 'atom_expr' base = node.children[0] assert base.type == 'name' and base.value == 'hasattr' trailer = node.children[1] diff --git a/jedi/evaluate/finder.py b/jedi/evaluate/finder.py index 63123acc..db9561c3 100644 --- a/jedi/evaluate/finder.py +++ b/jedi/evaluate/finder.py @@ -448,7 +448,7 @@ def check_flow_information(evaluator, flow, search_name, pos): def _check_isinstance_type(evaluator, element, search_name): try: - assert element.type == 'power' + assert element.type == 'power' or element.type == 'atom_expr' # this might be removed if we analyze and, etc assert len(element.children) == 2 first, trailer = element.children diff --git a/jedi/evaluate/sys_path.py b/jedi/evaluate/sys_path.py index e838177a..fabb2c1d 100644 --- a/jedi/evaluate/sys_path.py +++ b/jedi/evaluate/sys_path.py @@ -99,7 +99,8 @@ def _paths_from_assignment(evaluator, expr_stmt): for assignee, operator in zip(expr_stmt.children[::2], expr_stmt.children[1::2]): try: assert operator in ['=', '+='] - assert tree.is_node(assignee, 'power') and len(assignee.children) > 1 + assert tree.is_node(assignee, 'power', 'atom_expr') and \ + len(assignee.children) > 1 c = assignee.children assert c[0].type == 'name' and c[0].value == 'sys' trailer = c[1] @@ -152,7 +153,7 @@ def _check_module(evaluator, module): def get_sys_path_powers(names): for name in names: power = name.parent.parent - if tree.is_node(power, 'power'): + if tree.is_node(power, 'power', 'atom_expr'): c = power.children if isinstance(c[0], tree.Name) and c[0].value == 'sys' \ and tree.is_node(c[1], 'trailer'):