Browse Source

bpo-40334: Use old compiler when compile mode is func_type (GH-19692)

This is invoked by mypy, using ast.parse(source, "<func_type>", "func_type"). Since the new grammar doesn't yet support the func_type_input start symbol we must use the old compiler in this case to prevent a crash.

https://bugs.python.org/issue40334
pull/19695/head
Guido van Rossum 6 years ago
committed by GitHub
parent
commit
bc28805570
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      Python/bltinmodule.c

2
Python/bltinmodule.c

@ -817,7 +817,7 @@ builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename,
goto error;
int current_use_peg = PyInterpreterState_Get()->config._use_peg_parser;
if (flags & PyCF_TYPE_COMMENTS || feature_version >= 0) {
if (flags & PyCF_TYPE_COMMENTS || feature_version >= 0 || compile_mode == 3) {
PyInterpreterState_Get()->config._use_peg_parser = 0;
}
result = Py_CompileStringObject(str, filename, start[compile_mode], &cf, optimize);

Loading…
Cancel
Save