also normal imports should return the right user_stmt, similar case than #137

This commit is contained in:
David Halter
2013-05-09 12:05:05 +04:30
parent f3a4439285
commit 3a7c8af87f
2 changed files with 11 additions and 8 deletions

View File

@@ -516,8 +516,10 @@ class Parser(object):
# import stuff # import stuff
elif tok == 'import': elif tok == 'import':
imports = self._parse_import_list() imports = self._parse_import_list()
for m, alias, defunct in imports: for count, (m, alias, defunct) in enumerate(imports):
i = pr.Import(self.module, first_pos, self.end_pos, m, 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) alias, defunct=defunct)
self._check_user_stmt(i) self._check_user_stmt(i)
self.scope.add_import(i) self.scope.add_import(i)
@@ -551,12 +553,7 @@ class Parser(object):
star = name is not None and name.names[0] == '*' star = name is not None and name.names[0] == '*'
if star: if star:
name = None name = None
if alias is not None: e = (alias or name or self).end_pos
e = alias.end_pos
elif name is not None:
e = name.end_pos
else:
e = self.end_pos
end_pos = self.end_pos if count + 1 == len(names) else e end_pos = self.end_pos if count + 1 == len(names) else e
i = pr.Import(self.module, first_pos, end_pos, name, i = pr.Import(self.module, first_pos, end_pos, name,
alias, mod, star, relative_count, alias, mod, star, relative_count,

View File

@@ -222,6 +222,12 @@ import json
from json import load, dump from json import load, dump
#? 17 json.load #? 17 json.load
from json import load, dump from json import load, dump
# without the from clause:
import json, datetime
#? 7 json
import json, datetime
#? 13 datetime
import json, datetime
# ----------------- # -----------------
# packages # packages