From a859add6d7d86f3628cfe14f51dd1ae5addee65f Mon Sep 17 00:00:00 2001 From: micbou Date: Wed, 1 Mar 2017 01:58:58 +0100 Subject: [PATCH] Only resolve names for actual modules A name can be part of an import statement without being a module. --- jedi/api/usages.py | 5 +++-- test/completion/usages.py | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/jedi/api/usages.py b/jedi/api/usages.py index 254f7e1c..f9dba6ec 100644 --- a/jedi/api/usages.py +++ b/jedi/api/usages.py @@ -14,8 +14,9 @@ def usages(evaluator, definition_names, mods): if name.api_type == 'module': found = False for context in name.infer(): - found = True - yield context.name + if isinstance(context, ModuleContext): + found = True + yield context.name if not found: yield name else: diff --git a/test/completion/usages.py b/test/completion/usages.py index b158e157..eabce568 100644 --- a/test/completion/usages.py +++ b/test/completion/usages.py @@ -83,17 +83,18 @@ import module_not_exists module_not_exists -#< ('rename1', 1,0), (0,24), (3,0), (6,17), ('rename2', 4,5), (10,17), (13,17), ('imports', 72, 16) +#< ('rename1', 1,0), (0,24), (3,0), (6,17), ('rename2', 4,5), (11,17), (14,17), ('imports', 72, 16) from import_tree import rename1 -#< (0,8), ('rename1',3,0), ('rename2',4,20), ('rename2',6,0), (3,32), (7,32), (4,0) +#< (0,8), ('rename1',3,0), ('rename2',4,20), ('rename2',6,0), (3,32), (8,32), (5,0) rename1.abc -#< (-3,8), ('rename1', 3,0), ('rename2', 4,20), ('rename2', 6,0), (0,32), (4,32), (1,0) +#< (-3,8), ('rename1', 3,0), ('rename2', 4,20), ('rename2', 6,0), (0,32), (5,32), (2,0) from import_tree.rename1 import abc +#< (-5,8), (-2,32), ('rename1', 3,0), ('rename2', 4,20), ('rename2', 6,0), (0,0), (3,32) abc -#< 20 ('rename1', 1,0), ('rename2', 4,5), (-10,24), (-7,0), (-4,17), (0,17), (3,17), ('imports', 72, 16) +#< 20 ('rename1', 1,0), ('rename2', 4,5), (-11,24), (-8,0), (-5,17), (0,17), (3,17), ('imports', 72, 16) from import_tree.rename1 import abc #< (0, 32),