diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index d4ff0218..639d755c 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -326,7 +326,8 @@ class Evaluator(object): names = stmt.get_all_import_names() # Filter names that are after our Name removed_names = len(names) - names.index(call_path[0]) - 1 - i = imports.ImportWrapper(self, stmt, kill_count=removed_names) + i = imports.ImportWrapper(self, stmt, kill_count=removed_names, + nested_resolve=True) return i.follow(is_goto=True) # Return the name defined in the call_path, if it's part of the diff --git a/test/test_api/test_api_classes.py b/test/test_api/test_api_classes.py index 18d46c9e..b0e99253 100644 --- a/test/test_api/test_api_classes.py +++ b/test/test_api/test_api_classes.py @@ -278,3 +278,11 @@ class TestGotoAssignments(TestCase): n = nms[2].goto_assignments()[0] assert n.name == 'path' assert n.type == 'import' + + nms = names('import os.path', references=True) + n = nms[0].goto_assignments()[0] + assert n.name == 'os' + assert n.type == 'module' + n = nms[1].goto_assignments()[0] + assert n.name == 'path' + assert n.type == 'import'