From: Guido van Rossum Date: Thu, 23 Apr 2020 22:42:56 +0000 (-0700) Subject: bpo-40334: Use old compiler when compile mode is func_type (GH-19692) X-Git-Tag: v3.9.0a6~27 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bc28805570ae3e8835a5d502ae9ab15c52449f77;p=thirdparty%2FPython%2Fcpython.git bpo-40334: Use old compiler when compile mode is func_type (GH-19692) This is invoked by mypy, using ast.parse(source, "", "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 --- diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index ce3561e4c089..14c3e96fb51a 100644 --- a/Python/bltinmodule.c +++ b/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);