mirror of
https://github.com/python/cpython.git
synced 2025-09-01 06:28:36 +00:00
Part way to allowing "from __future__ import generators" to communicate
that info to code dynamically compiled *by* code compiled with generators enabled. Doesn't yet work because there's still no way to tell the parser that "yield" is OK (unlike nested_scopes, the parser has its fingers in this too). Replaced PyEval_GetNestedScopes by a more-general PyEval_MergeCompilerFlags. Perhaps I should not have? I doubted it was *intended* to be part of the public API, so just did.
This commit is contained in:
parent
4dbf87152e
commit
5ba5866281
11 changed files with 77 additions and 33 deletions
|
@ -494,7 +494,7 @@ PyRun_InteractiveLoopFlags(FILE *fp, char *filename, PyCompilerFlags *flags)
|
|||
|
||||
if (flags == NULL) {
|
||||
flags = &local_flags;
|
||||
local_flags.cf_nested_scopes = 0;
|
||||
local_flags.cf_flags = 0;
|
||||
}
|
||||
v = PySys_GetObject("ps1");
|
||||
if (v == NULL) {
|
||||
|
@ -1075,10 +1075,14 @@ run_pyc_file(FILE *fp, char *filename, PyObject *globals, PyObject *locals,
|
|||
v = PyEval_EvalCode(co, globals, locals);
|
||||
if (v && flags) {
|
||||
if (co->co_flags & CO_NESTED)
|
||||
flags->cf_nested_scopes = 1;
|
||||
flags->cf_flags |= PyCF_NESTED_SCOPES;
|
||||
if (co->co_flags & CO_GENERATOR)
|
||||
flags->cf_flags |= PyCF_GENERATORS;
|
||||
#if 0
|
||||
fprintf(stderr, "run_pyc_file: nested_scopes: %d\n",
|
||||
flags->cf_nested_scopes);
|
||||
flags->cf_flags & PyCF_NESTED_SCOPES);
|
||||
fprintf(stderr, "run_pyc_file: generators: %d\n",
|
||||
flags->cf_flags & PyCF_GENERATORS);
|
||||
#endif
|
||||
}
|
||||
Py_DECREF(co);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue