remove dead *-import checking code (closes #24049)
This commit is contained in:
parent
bd91ee9cd7
commit
9bdd61338d
|
@ -161,10 +161,6 @@ conjunction with nested scopes that contain free variables.
|
||||||
If a variable is referenced in an enclosing scope, it is illegal to delete the
|
If a variable is referenced in an enclosing scope, it is illegal to delete the
|
||||||
name. An error will be reported at compile time.
|
name. An error will be reported at compile time.
|
||||||
|
|
||||||
If the wild card form of import --- ``import *`` --- is used in a function and
|
|
||||||
the function contains or is a nested block with free variables, the compiler
|
|
||||||
will raise a :exc:`SyntaxError`.
|
|
||||||
|
|
||||||
.. XXX from * also invalid with relative imports (at least currently)
|
.. XXX from * also invalid with relative imports (at least currently)
|
||||||
|
|
||||||
The :func:`eval` and :func:`exec` functions do not have access to the full
|
The :func:`eval` and :func:`exec` functions do not have access to the full
|
||||||
|
|
|
@ -583,35 +583,6 @@ drop_class_free(PySTEntryObject *ste, PyObject *free)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for illegal statements in unoptimized namespaces */
|
|
||||||
static int
|
|
||||||
check_unoptimized(const PySTEntryObject* ste) {
|
|
||||||
const char* trailer;
|
|
||||||
|
|
||||||
if (ste->ste_type != FunctionBlock || !ste->ste_unoptimized
|
|
||||||
|| !(ste->ste_free || ste->ste_child_free))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
trailer = (ste->ste_child_free ?
|
|
||||||
"contains a nested function with free variables" :
|
|
||||||
"is a nested function");
|
|
||||||
|
|
||||||
switch (ste->ste_unoptimized) {
|
|
||||||
case OPT_TOPLEVEL: /* import * at top-level is fine */
|
|
||||||
return 1;
|
|
||||||
case OPT_IMPORT_STAR:
|
|
||||||
PyErr_Format(PyExc_SyntaxError,
|
|
||||||
"import * is not allowed in function '%U' because it %s",
|
|
||||||
ste->ste_name, trailer);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
PyErr_SyntaxLocationObject(ste->ste_table->st_filename,
|
|
||||||
ste->ste_opt_lineno,
|
|
||||||
ste->ste_opt_col_offset);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Enter the final scope information into the ste_symbols dict.
|
/* Enter the final scope information into the ste_symbols dict.
|
||||||
*
|
*
|
||||||
* All arguments are dicts. Modifies symbols, others are read-only.
|
* All arguments are dicts. Modifies symbols, others are read-only.
|
||||||
|
@ -854,8 +825,6 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free,
|
||||||
if (!update_symbols(ste->ste_symbols, scopes, bound, newfree,
|
if (!update_symbols(ste->ste_symbols, scopes, bound, newfree,
|
||||||
ste->ste_type == ClassBlock))
|
ste->ste_type == ClassBlock))
|
||||||
goto error;
|
goto error;
|
||||||
if (!check_unoptimized(ste))
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
temp = PyNumber_InPlaceOr(free, newfree);
|
temp = PyNumber_InPlaceOr(free, newfree);
|
||||||
if (!temp)
|
if (!temp)
|
||||||
|
|
Loading…
Reference in New Issue