mirror of
https://github.com/AdaCore/cpython.git
synced 2026-02-12 12:57:15 -08: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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user