Kaydet (Commit) d1f5a59e authored tarafından Benjamin Peterson's avatar Benjamin Peterson

allow importing from a module named None if it has an 'as' clause

üst 565e1b6b
......@@ -281,6 +281,8 @@ if 1:
self.assertRaises(SyntaxError, compile, stmt, 'tmp', 'exec')
# This is ok.
compile("from None import x", "tmp", "exec")
compile("from x import None as y", "tmp", "exec")
compile("import None as x", "tmp", "exec")
def test_import(self):
succeed = [
......
......@@ -2316,8 +2316,10 @@ alias_for_import_name(struct compiling *c, const node *n, int store)
if (!str)
return NULL;
}
else {
if (!forbidden_check(c, name_node, STR(name_node)))
return NULL;
}
name = NEW_IDENTIFIER(name_node);
if (!name)
return NULL;
......@@ -2330,11 +2332,11 @@ alias_for_import_name(struct compiling *c, const node *n, int store)
}
else {
node *asname_node = CHILD(n, 2);
alias_ty a = alias_for_import_name(c, CHILD(n, 0), store);
alias_ty a = alias_for_import_name(c, CHILD(n, 0), 0);
if (!a)
return NULL;
assert(!a->asname);
if (store && !forbidden_check(c, asname_node, STR(asname_node)))
if (!forbidden_check(c, asname_node, STR(asname_node)))
return NULL;
a->asname = NEW_IDENTIFIER(asname_node);
if (!a->asname)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment