diff --git a/jedi/parsing.py b/jedi/parsing.py index 3b38a390..5371f526 100644 --- a/jedi/parsing.py +++ b/jedi/parsing.py @@ -516,8 +516,10 @@ class Parser(object): # import stuff elif tok == 'import': imports = self._parse_import_list() - for m, alias, defunct in imports: - i = pr.Import(self.module, first_pos, self.end_pos, m, + for count, (m, alias, defunct) in enumerate(imports): + e = (alias or m or self).end_pos + end_pos = self.end_pos if count + 1 == len(imports) else e + i = pr.Import(self.module, first_pos, end_pos, m, alias, defunct=defunct) self._check_user_stmt(i) self.scope.add_import(i) @@ -551,12 +553,7 @@ class Parser(object): star = name is not None and name.names[0] == '*' if star: name = None - if alias is not None: - e = alias.end_pos - elif name is not None: - e = name.end_pos - else: - e = self.end_pos + e = (alias or name or self).end_pos end_pos = self.end_pos if count + 1 == len(names) else e i = pr.Import(self.module, first_pos, end_pos, name, alias, mod, star, relative_count, diff --git a/test/completion/imports.py b/test/completion/imports.py index 929abacd..83a4a721 100644 --- a/test/completion/imports.py +++ b/test/completion/imports.py @@ -222,6 +222,12 @@ import json from json import load, dump #? 17 json.load from json import load, dump +# without the from clause: +import json, datetime +#? 7 json +import json, datetime +#? 13 datetime +import json, datetime # ----------------- # packages