https://github.com/python/cpython/commit/0a1fedb70b94217055114357fa5f5be5ea62bdbe
commit: 0a1fedb70b94217055114357fa5f5be5ea62bdbe
branch: main
author: Yan Yanchii <yyanc...@gmail.com>
committer: Eclips4 <kirill.ba...@mail.ru>
date: 2025-05-04T21:07:35+03:00
summary:

gh-126835: Rename `ast_opt.c` to `ast_preprocess.c` and related stuff after 
moving const folding to the peephole optimizier (#131830)

files:
A 
Misc/NEWS.d/next/Core_and_Builtins/2025-03-28-15-06-55.gh-issue-126835.IpcMTn.rst
A Python/ast_preprocess.c
D Python/ast_opt.c
M .github/CODEOWNERS
M Include/internal/pycore_compile.h
M InternalDocs/compiler.md
M Makefile.pre.in
M PCbuild/_freeze_module.vcxproj
M PCbuild/_freeze_module.vcxproj.filters
M PCbuild/pythoncore.vcxproj
M PCbuild/pythoncore.vcxproj.filters
M Python/bltinmodule.c
M Python/compile.c
M Python/pythonrun.c
M Tools/c-analyzer/cpython/ignored.tsv

diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 11e8acd963aa03..16331b65e52979 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -188,7 +188,7 @@ Include/internal/pycore_time.h  @pganssle @abalkin
 
 # AST
 Python/ast.c                  @isidentical @JelleZijlstra @eclips4
-Python/ast_opt.c              @isidentical @eclips4
+Python/ast_preprocess.c       @isidentical @eclips4
 Parser/asdl.py                @isidentical @JelleZijlstra @eclips4
 Parser/asdl_c.py              @isidentical @JelleZijlstra @eclips4
 Lib/ast.py                    @isidentical @JelleZijlstra @eclips4
diff --git a/Include/internal/pycore_compile.h 
b/Include/internal/pycore_compile.h
index a606c2afe0a234..aecc50be1e6c34 100644
--- a/Include/internal/pycore_compile.h
+++ b/Include/internal/pycore_compile.h
@@ -34,8 +34,8 @@ PyAPI_FUNC(PyCodeObject*) _PyAST_Compile(
     int optimize,
     struct _arena *arena);
 
-/* AST optimizations */
-extern int _PyCompile_AstOptimize(
+/* AST preprocessing */
+extern int _PyCompile_AstPreprocess(
     struct _mod *mod,
     PyObject *filename,
     PyCompilerFlags *flags,
@@ -43,7 +43,7 @@ extern int _PyCompile_AstOptimize(
     struct _arena *arena,
     int syntax_check_only);
 
-extern int _PyAST_Optimize(
+extern int _PyAST_Preprocess(
     struct _mod *,
     struct _arena *arena,
     PyObject *filename,
diff --git a/InternalDocs/compiler.md b/InternalDocs/compiler.md
index 8ca19a42b91b83..02bbdf6071fa12 100644
--- a/InternalDocs/compiler.md
+++ b/InternalDocs/compiler.md
@@ -505,8 +505,8 @@ Important files
   * [Python/ast.c](../Python/ast.c):
     Used for validating the AST.
 
-  * [Python/ast_opt.c](../Python/ast_opt.c):
-    Optimizes the AST.
+  * [Python/ast_preprocess.c](../Python/ast_preprocess.c):
+    Preprocesses the AST before compiling.
 
   * [Python/ast_unparse.c](../Python/ast_unparse.c):
     Converts the AST expression node back into a string (for string 
annotations).
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 9f90df6019dea9..88b66561293ca5 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -426,7 +426,7 @@ PYTHON_OBJS=        \
                Python/asdl.o \
                Python/assemble.o \
                Python/ast.o \
-               Python/ast_opt.o \
+               Python/ast_preprocess.o \
                Python/ast_unparse.o \
                Python/bltinmodule.o \
                Python/brc.o \
diff --git 
a/Misc/NEWS.d/next/Core_and_Builtins/2025-03-28-15-06-55.gh-issue-126835.IpcMTn.rst
 
b/Misc/NEWS.d/next/Core_and_Builtins/2025-03-28-15-06-55.gh-issue-126835.IpcMTn.rst
new file mode 100644
index 00000000000000..caa7784acd7124
--- /dev/null
+++ 
b/Misc/NEWS.d/next/Core_and_Builtins/2025-03-28-15-06-55.gh-issue-126835.IpcMTn.rst
@@ -0,0 +1,3 @@
+Move constant folding to the peephole optimizer. Rename AST optimization
+related files (Python/ast_opt.c -> Python/ast_preprocess.c), structs 
(_PyASTOptimizeState -> _PyASTPreprocessState)
+and functions (_PyAST_Optimize -> _PyAST_Preprocess, _PyCompile_AstOptimize -> 
_PyCompile_AstPreprocess).
diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj
index 1f3f3170f3fa48..8c161835af9a8c 100644
--- a/PCbuild/_freeze_module.vcxproj
+++ b/PCbuild/_freeze_module.vcxproj
@@ -190,7 +190,7 @@
     <ClCompile Include="..\Python\asdl.c" />
     <ClCompile Include="..\Python\assemble.c" />
     <ClCompile Include="..\Python\ast.c" />
-    <ClCompile Include="..\Python\ast_opt.c" />
+    <ClCompile Include="..\Python\ast_preprocess.c" />
     <ClCompile Include="..\Python\ast_unparse.c" />
     <ClCompile Include="..\Python\bltinmodule.c" />
     <ClCompile Include="..\Python\brc.c" />
diff --git a/PCbuild/_freeze_module.vcxproj.filters 
b/PCbuild/_freeze_module.vcxproj.filters
index 0a64de1d4f0e88..332d466b1f7409 100644
--- a/PCbuild/_freeze_module.vcxproj.filters
+++ b/PCbuild/_freeze_module.vcxproj.filters
@@ -34,7 +34,7 @@
     <ClCompile Include="..\Python\ast.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\Python\ast_opt.c">
+    <ClCompile Include="..\Python\ast_preprocess.c">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\Python\ast_unparse.c">
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index d2aafce058d05e..549d6284972afc 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -580,7 +580,7 @@
     <ClCompile Include="..\Python\asdl.c" />
     <ClCompile Include="..\Python\assemble.c" />
     <ClCompile Include="..\Python\ast.c" />
-    <ClCompile Include="..\Python\ast_opt.c" />
+    <ClCompile Include="..\Python\ast_preprocess.c" />
     <ClCompile Include="..\Python\ast_unparse.c" />
     <ClCompile Include="..\Python\bltinmodule.c" />
     <ClCompile Include="..\Python\bootstrap_hash.c" />
diff --git a/PCbuild/pythoncore.vcxproj.filters 
b/PCbuild/pythoncore.vcxproj.filters
index 873f7d65a26a87..0e6d42cc959ba5 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -1325,7 +1325,7 @@
     <ClCompile Include="..\Python\ast.c">
       <Filter>Python</Filter>
     </ClCompile>
-    <ClCompile Include="..\Python\ast_opt.c">
+    <ClCompile Include="..\Python\ast_preprocess.c">
       <Filter>Python</Filter>
     </ClCompile>
     <ClCompile Include="..\Python\ast_unparse.c">
diff --git a/Python/ast_opt.c b/Python/ast_preprocess.c
similarity index 92%
rename from Python/ast_opt.c
rename to Python/ast_preprocess.c
index 4d5e5589ac06ca..bafd67ed790b20 100644
--- a/Python/ast_opt.c
+++ b/Python/ast_preprocess.c
@@ -1,4 +1,4 @@
-/* AST Optimizer */
+/* AST pre-processing */
 #include "Python.h"
 #include "pycore_ast.h"           // _PyAST_GetDocString()
 #include "pycore_c_array.h"       // _Py_CArray_EnsureCapacity()
@@ -22,7 +22,7 @@ typedef struct {
 
     _Py_c_array_t cf_finally;       /* context for PEP 765 check */
     int cf_finally_used;
-} _PyASTOptimizeState;
+} _PyASTPreprocessState;
 
 #define ENTER_RECURSIVE() \
 if (Py_EnterRecursiveCall(" during compilation")) { \
@@ -32,14 +32,14 @@ if (Py_EnterRecursiveCall(" during compilation")) { \
 #define LEAVE_RECURSIVE() Py_LeaveRecursiveCall();
 
 static ControlFlowInFinallyContext*
-get_cf_finally_top(_PyASTOptimizeState *state)
+get_cf_finally_top(_PyASTPreprocessState *state)
 {
     int idx = state->cf_finally_used;
     return ((ControlFlowInFinallyContext*)state->cf_finally.array) + idx;
 }
 
 static int
-push_cf_context(_PyASTOptimizeState *state, stmt_ty node, bool finally, bool 
funcdef, bool loop)
+push_cf_context(_PyASTPreprocessState *state, stmt_ty node, bool finally, bool 
funcdef, bool loop)
 {
     if (_Py_CArray_EnsureCapacity(&state->cf_finally, 
state->cf_finally_used+1) < 0) {
         return 0;
@@ -55,14 +55,14 @@ push_cf_context(_PyASTOptimizeState *state, stmt_ty node, 
bool finally, bool fun
 }
 
 static void
-pop_cf_context(_PyASTOptimizeState *state)
+pop_cf_context(_PyASTPreprocessState *state)
 {
     assert(state->cf_finally_used > 0);
     state->cf_finally_used--;
 }
 
 static int
-control_flow_in_finally_warning(const char *kw, stmt_ty n, _PyASTOptimizeState 
*state)
+control_flow_in_finally_warning(const char *kw, stmt_ty n, 
_PyASTPreprocessState *state)
 {
     PyObject *msg = PyUnicode_FromFormat("'%s' in a 'finally' block", kw);
     if (msg == NULL) {
@@ -76,7 +76,7 @@ control_flow_in_finally_warning(const char *kw, stmt_ty n, 
_PyASTOptimizeState *
 }
 
 static int
-before_return(_PyASTOptimizeState *state, stmt_ty node_)
+before_return(_PyASTPreprocessState *state, stmt_ty node_)
 {
     if (state->cf_finally_used > 0) {
         ControlFlowInFinallyContext *ctx = get_cf_finally_top(state);
@@ -90,7 +90,7 @@ before_return(_PyASTOptimizeState *state, stmt_ty node_)
 }
 
 static int
-before_loop_exit(_PyASTOptimizeState *state, stmt_ty node_, const char *kw)
+before_loop_exit(_PyASTPreprocessState *state, stmt_ty node_, const char *kw)
 {
     if (state->cf_finally_used > 0) {
         ControlFlowInFinallyContext *ctx = get_cf_finally_top(state);
@@ -365,7 +365,7 @@ optimize_format(expr_ty node, PyObject *fmt, asdl_expr_seq 
*elts, PyArena *arena
 }
 
 static int
-fold_binop(expr_ty node, PyArena *arena, _PyASTOptimizeState *state)
+fold_binop(expr_ty node, PyArena *arena, _PyASTPreprocessState *state)
 {
     if (state->syntax_check_only) {
         return 1;
@@ -389,18 +389,18 @@ fold_binop(expr_ty node, PyArena *arena, 
_PyASTOptimizeState *state)
     return 1;
 }
 
-static int astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTOptimizeState 
*state);
-static int astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTOptimizeState 
*state);
-static int astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTOptimizeState 
*state);
-static int astfold_arguments(arguments_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state);
-static int astfold_comprehension(comprehension_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state);
-static int astfold_keyword(keyword_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state);
-static int astfold_arg(arg_ty node_, PyArena *ctx_, _PyASTOptimizeState 
*state);
-static int astfold_withitem(withitem_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state);
-static int astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state);
-static int astfold_match_case(match_case_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state);
-static int astfold_pattern(pattern_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state);
-static int astfold_type_param(type_param_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state);
+static int astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTPreprocessState 
*state);
+static int astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTPreprocessState 
*state);
+static int astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTPreprocessState 
*state);
+static int astfold_arguments(arguments_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state);
+static int astfold_comprehension(comprehension_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state);
+static int astfold_keyword(keyword_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state);
+static int astfold_arg(arg_ty node_, PyArena *ctx_, _PyASTPreprocessState 
*state);
+static int astfold_withitem(withitem_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state);
+static int astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state);
+static int astfold_match_case(match_case_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state);
+static int astfold_pattern(pattern_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state);
+static int astfold_type_param(type_param_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state);
 
 #define CALL(FUNC, TYPE, ARG) \
     if (!FUNC((ARG), ctx_, state)) \
@@ -436,7 +436,7 @@ stmt_seq_remove_item(asdl_stmt_seq *stmts, Py_ssize_t idx)
 }
 
 static int
-astfold_body(asdl_stmt_seq *stmts, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_body(asdl_stmt_seq *stmts, PyArena *ctx_, _PyASTPreprocessState *state)
 {
     int docstring = _PyAST_GetDocString(stmts) != NULL;
     if (docstring && (state->optimize >= 2)) {
@@ -466,7 +466,7 @@ astfold_body(asdl_stmt_seq *stmts, PyArena *ctx_, 
_PyASTOptimizeState *state)
 }
 
 static int
-astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTPreprocessState *state)
 {
     switch (node_->kind) {
     case Module_kind:
@@ -488,7 +488,7 @@ astfold_mod(mod_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state)
 }
 
 static int
-astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_expr(expr_ty node_, PyArena *ctx_, _PyASTPreprocessState *state)
 {
     ENTER_RECURSIVE();
     switch (node_->kind) {
@@ -613,14 +613,14 @@ astfold_expr(expr_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state)
 }
 
 static int
-astfold_keyword(keyword_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_keyword(keyword_ty node_, PyArena *ctx_, _PyASTPreprocessState *state)
 {
     CALL(astfold_expr, expr_ty, node_->value);
     return 1;
 }
 
 static int
-astfold_comprehension(comprehension_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state)
+astfold_comprehension(comprehension_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state)
 {
     CALL(astfold_expr, expr_ty, node_->target);
     CALL(astfold_expr, expr_ty, node_->iter);
@@ -629,7 +629,7 @@ astfold_comprehension(comprehension_ty node_, PyArena 
*ctx_, _PyASTOptimizeState
 }
 
 static int
-astfold_arguments(arguments_ty node_, PyArena *ctx_, _PyASTOptimizeState 
*state)
+astfold_arguments(arguments_ty node_, PyArena *ctx_, _PyASTPreprocessState 
*state)
 {
     CALL_SEQ(astfold_arg, arg, node_->posonlyargs);
     CALL_SEQ(astfold_arg, arg, node_->args);
@@ -642,7 +642,7 @@ astfold_arguments(arguments_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state)
 }
 
 static int
-astfold_arg(arg_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_arg(arg_ty node_, PyArena *ctx_, _PyASTPreprocessState *state)
 {
     if (!(state->ff_features & CO_FUTURE_ANNOTATIONS)) {
         CALL_OPT(astfold_expr, expr_ty, node_->annotation);
@@ -651,7 +651,7 @@ astfold_arg(arg_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state)
 }
 
 static int
-astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_stmt(stmt_ty node_, PyArena *ctx_, _PyASTPreprocessState *state)
 {
     ENTER_RECURSIVE();
     switch (node_->kind) {
@@ -806,7 +806,7 @@ astfold_stmt(stmt_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state)
 }
 
 static int
-astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state)
+astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, 
_PyASTPreprocessState *state)
 {
     switch (node_->kind) {
     case ExceptHandler_kind:
@@ -820,7 +820,7 @@ astfold_excepthandler(excepthandler_ty node_, PyArena 
*ctx_, _PyASTOptimizeState
 }
 
 static int
-astfold_withitem(withitem_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_withitem(withitem_ty node_, PyArena *ctx_, _PyASTPreprocessState 
*state)
 {
     CALL(astfold_expr, expr_ty, node_->context_expr);
     CALL_OPT(astfold_expr, expr_ty, node_->optional_vars);
@@ -828,7 +828,7 @@ astfold_withitem(withitem_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state)
 }
 
 static int
-fold_const_match_patterns(expr_ty node, PyArena *ctx_, _PyASTOptimizeState 
*state)
+fold_const_match_patterns(expr_ty node, PyArena *ctx_, _PyASTPreprocessState 
*state)
 {
     if (state->syntax_check_only) {
         return 1;
@@ -869,7 +869,7 @@ fold_const_match_patterns(expr_ty node, PyArena *ctx_, 
_PyASTOptimizeState *stat
 }
 
 static int
-astfold_pattern(pattern_ty node_, PyArena *ctx_, _PyASTOptimizeState *state)
+astfold_pattern(pattern_ty node_, PyArena *ctx_, _PyASTPreprocessState *state)
 {
     // Currently, this is really only used to form complex/negative numeric
     // constants in MatchValue and MatchMapping nodes
@@ -911,7 +911,7 @@ astfold_pattern(pattern_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *state)
 }
 
 static int
-astfold_match_case(match_case_ty node_, PyArena *ctx_, _PyASTOptimizeState 
*state)
+astfold_match_case(match_case_ty node_, PyArena *ctx_, _PyASTPreprocessState 
*state)
 {
     CALL(astfold_pattern, expr_ty, node_->pattern);
     CALL_OPT(astfold_expr, expr_ty, node_->guard);
@@ -920,7 +920,7 @@ astfold_match_case(match_case_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *stat
 }
 
 static int
-astfold_type_param(type_param_ty node_, PyArena *ctx_, _PyASTOptimizeState 
*state)
+astfold_type_param(type_param_ty node_, PyArena *ctx_, _PyASTPreprocessState 
*state)
 {
     switch (node_->kind) {
         case TypeVar_kind:
@@ -942,11 +942,11 @@ astfold_type_param(type_param_ty node_, PyArena *ctx_, 
_PyASTOptimizeState *stat
 #undef CALL_SEQ
 
 int
-_PyAST_Optimize(mod_ty mod, PyArena *arena, PyObject *filename, int optimize,
-                int ff_features, int syntax_check_only)
+_PyAST_Preprocess(mod_ty mod, PyArena *arena, PyObject *filename, int optimize,
+                  int ff_features, int syntax_check_only)
 {
-    _PyASTOptimizeState state;
-    memset(&state, 0, sizeof(_PyASTOptimizeState));
+    _PyASTPreprocessState state;
+    memset(&state, 0, sizeof(_PyASTPreprocessState));
     state.filename = filename;
     state.optimize = optimize;
     state.ff_features = ff_features;
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 3221d5acf96f71..3d0295ee3883f2 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -845,7 +845,7 @@ builtin_compile_impl(PyObject *module, PyObject *source, 
PyObject *filename,
                 goto error;
             }
             int syntax_check_only = ((flags & PyCF_OPTIMIZED_AST) == 
PyCF_ONLY_AST); /* unoptiomized AST */
-            if (_PyCompile_AstOptimize(mod, filename, &cf, optimize,
+            if (_PyCompile_AstPreprocess(mod, filename, &cf, optimize,
                                            arena, syntax_check_only) < 0) {
                 _PyArena_Free(arena);
                 goto error;
diff --git a/Python/compile.c b/Python/compile.c
index 15ef7214d44b9c..c04391e682f9ac 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -135,7 +135,7 @@ compiler_setup(compiler *c, mod_ty mod, PyObject *filename,
     c->c_optimize = (optimize == -1) ? _Py_GetConfig()->optimization_level : 
optimize;
     c->c_save_nested_seqs = false;
 
-    if (!_PyAST_Optimize(mod, arena, filename, c->c_optimize, merged, 0)) {
+    if (!_PyAST_Preprocess(mod, arena, filename, c->c_optimize, merged, 0)) {
         return ERROR;
     }
     c->c_st = _PySymtable_Build(mod, filename, &c->c_future);
@@ -1481,8 +1481,8 @@ _PyAST_Compile(mod_ty mod, PyObject *filename, 
PyCompilerFlags *pflags,
 }
 
 int
-_PyCompile_AstOptimize(mod_ty mod, PyObject *filename, PyCompilerFlags *cf,
-                       int optimize, PyArena *arena, int no_const_folding)
+_PyCompile_AstPreprocess(mod_ty mod, PyObject *filename, PyCompilerFlags *cf,
+                         int optimize, PyArena *arena, int no_const_folding)
 {
     _PyFutureFeatures future;
     if (!_PyFuture_FromAST(mod, filename, &future)) {
@@ -1492,7 +1492,7 @@ _PyCompile_AstOptimize(mod_ty mod, PyObject *filename, 
PyCompilerFlags *cf,
     if (optimize == -1) {
         optimize = _Py_GetConfig()->optimization_level;
     }
-    if (!_PyAST_Optimize(mod, arena, filename, optimize, flags, 
no_const_folding)) {
+    if (!_PyAST_Preprocess(mod, arena, filename, optimize, flags, 
no_const_folding)) {
         return -1;
     }
     return 0;
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 23af8b6f6be8e8..4ee287af72fdb2 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -1498,7 +1498,7 @@ Py_CompileStringObject(const char *str, PyObject 
*filename, int start,
     }
     if (flags && (flags->cf_flags & PyCF_ONLY_AST)) {
         int syntax_check_only = ((flags->cf_flags & PyCF_OPTIMIZED_AST) == 
PyCF_ONLY_AST); /* unoptiomized AST */
-        if (_PyCompile_AstOptimize(mod, filename, flags, optimize, arena, 
syntax_check_only) < 0) {
+        if (_PyCompile_AstPreprocess(mod, filename, flags, optimize, arena, 
syntax_check_only) < 0) {
             _PyArena_Free(arena);
             return NULL;
         }
diff --git a/Tools/c-analyzer/cpython/ignored.tsv 
b/Tools/c-analyzer/cpython/ignored.tsv
index 2be3e1a420b91d..b128abca39fb41 100644
--- a/Tools/c-analyzer/cpython/ignored.tsv
+++ b/Tools/c-analyzer/cpython/ignored.tsv
@@ -349,7 +349,6 @@ Objects/unicodeobject.c     
unicode_translate_call_errorhandler     argparse        -
 Parser/parser.c        -       reserved_keywords       -
 Parser/parser.c        -       soft_keywords   -
 Parser/lexer/lexer.c   -       type_comment_prefix     -
-Python/ast_opt.c       fold_unaryop    ops     -
 Python/ceval.c -       _PyEval_BinaryOps       -
 Python/ceval.c -       _Py_INTERPRETER_TRAMPOLINE_INSTRUCTIONS -
 Python/codecs.c        -       Py_hexdigits    -

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to