mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Disallow "import mod.submod as m", because the result is ambiguous. Does it
load mod.submod as m, or mod as m ? Both can be achieved differently, and unambiguously. Also attempt to document this restriction (editor appreciated!) Note that this is an artificial check during compile, because incorporating this in the grammar is hard, and then adjusting the compiler to do the right thing with the right nodes is harder.
This commit is contained in:
parent
15446d344d
commit
8bad612881
2 changed files with 8 additions and 2 deletions
|
@ -2139,7 +2139,8 @@ com_import_stmt(struct compiling *c, node *n)
|
|||
com_addopname(c, IMPORT_NAME, CHILD(subn, 0));
|
||||
com_push(c, 1);
|
||||
if (NCH(subn) > 1) {
|
||||
if (strcmp(STR(CHILD(subn, 1)), "as") != 0) {
|
||||
if (strcmp(STR(CHILD(subn, 1)), "as") != 0 ||
|
||||
NCH(CHILD(subn, 0)) > 1) {
|
||||
com_error(c, PyExc_SyntaxError,
|
||||
"invalid syntax");
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue