https://github.com/python/cpython/commit/b62380fdb89b0a05c652c1c83613e36613f56c61
commit: b62380fdb89b0a05c652c1c83613e36613f56c61
branch: main
author: Bartosz SÅ‚awecki <[email protected]>
committer: encukou <[email protected]>
date: 2026-09-14T14:06:22+02:00
summary:

gh-156021: Don't include `...` for empty AST node representations (GH-156022)

files:
A 
Misc/NEWS.d/next/Core_and_Builtins/2026-08-18-18-13-47.gh-issue-156021.3mK5c5.rst
M Lib/test/test_ast/data/ast_repr.txt
M Parser/asdl_c.py
M Python/Python-ast.c

diff --git a/Lib/test/test_ast/data/ast_repr.txt 
b/Lib/test/test_ast/data/ast_repr.txt
index cc6accd766b78ad..466e1b4f3c656f3 100644
--- a/Lib/test/test_ast/data/ast_repr.txt
+++ b/Lib/test/test_ast/data/ast_repr.txt
@@ -9,46 +9,46 @@ Module(body=[FunctionDef(name='f', 
args=arguments(posonlyargs=[], args=[], varar
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=arg(...), kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=None, type_comment=None, 
type_params=[])], type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=arg(...), defaults=[]), 
body=[Pass()], decorator_list=[], returns=None, type_comment=None, 
type_params=[])], type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], 
args=[arg(...), ..., arg(...)], vararg=arg(...), kwonlyargs=[arg(...)], 
kw_defaults=[Constant(...)], kwarg=arg(...), defaults=[Constant(...), ..., 
Dict(...)]), body=[Expr(value=Constant(...))], decorator_list=[], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
-Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=Subscript(value=Name(...), 
slice=Tuple(...), ctx=Load(...)), type_comment=None, type_params=[])], 
type_ignores=[])
-Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=Subscript(value=Name(...), 
slice=Tuple(...), ctx=Load(...)), type_comment=None, type_params=[])], 
type_ignores=[])
-Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=Subscript(value=Name(...), 
slice=Tuple(...), ctx=Load(...)), type_comment=None, type_params=[])], 
type_ignores=[])
+Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=Subscript(value=Name(...), 
slice=Tuple(...), ctx=Load()), type_comment=None, type_params=[])], 
type_ignores=[])
+Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=Subscript(value=Name(...), 
slice=Tuple(...), ctx=Load()), type_comment=None, type_params=[])], 
type_ignores=[])
+Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=Subscript(value=Name(...), 
slice=Tuple(...), ctx=Load()), type_comment=None, type_params=[])], 
type_ignores=[])
 Module(body=[ClassDef(name='C', bases=[], keywords=[], body=[Pass()], 
decorator_list=[], type_params=[])], type_ignores=[])
 Module(body=[ClassDef(name='C', bases=[], keywords=[], 
body=[Expr(value=Constant(...))], decorator_list=[], type_params=[])], 
type_ignores=[])
-Module(body=[ClassDef(name='C', bases=[Name(id='object', ctx=Load(...))], 
keywords=[], body=[Pass()], decorator_list=[], type_params=[])], 
type_ignores=[])
-Module(body=[ClassDef(name='C', bases=[Name(id='A', ctx=Load(...)), 
Name(id='B', ctx=Load(...))], keywords=[], body=[Pass()], decorator_list=[], 
type_params=[])], type_ignores=[])
+Module(body=[ClassDef(name='C', bases=[Name(id='object', ctx=Load())], 
keywords=[], body=[Pass()], decorator_list=[], type_params=[])], 
type_ignores=[])
+Module(body=[ClassDef(name='C', bases=[Name(id='A', ctx=Load()), Name(id='B', 
ctx=Load())], keywords=[], body=[Pass()], decorator_list=[], type_params=[])], 
type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Return(value=Constant(...))], decorator_list=[], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Return(value=None)], decorator_list=[], returns=None, type_comment=None, 
type_params=[])], type_ignores=[])
-Module(body=[Delete(targets=[Name(id='v', ctx=Del(...))])], type_ignores=[])
-Module(body=[Assign(targets=[Name(id='v', ctx=Store(...))], 
value=Constant(value=1, kind=None), type_comment=None)], type_ignores=[])
-Module(body=[Assign(targets=[Tuple(elts=[Name(...), Name(...)], 
ctx=Store(...))], value=Name(id='c', ctx=Load(...)), type_comment=None)], 
type_ignores=[])
-Module(body=[Assign(targets=[Tuple(elts=[Name(...), Name(...)], 
ctx=Store(...))], value=Name(id='c', ctx=Load(...)), type_comment=None)], 
type_ignores=[])
-Module(body=[Assign(targets=[List(elts=[Name(...), Name(...)], 
ctx=Store(...))], value=Name(id='c', ctx=Load(...)), type_comment=None)], 
type_ignores=[])
-Module(body=[Assign(targets=[Subscript(value=Name(...), slice=Name(...), 
ctx=Store(...))], value=Name(id='c', ctx=Load(...)), type_comment=None)], 
type_ignores=[])
-Module(body=[AnnAssign(target=Name(id='x', ctx=Store(...)), 
annotation=Subscript(value=Name(...), slice=Tuple(...), ctx=Load(...)), 
value=None, simple=1)], type_ignores=[])
-Module(body=[AnnAssign(target=Name(id='x', ctx=Store(...)), 
annotation=Subscript(value=Name(...), slice=Tuple(...), ctx=Load(...)), 
value=None, simple=1)], type_ignores=[])
-Module(body=[AnnAssign(target=Name(id='x', ctx=Store(...)), 
annotation=Subscript(value=Name(...), slice=Tuple(...), ctx=Load(...)), 
value=None, simple=1)], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=Add(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=Sub(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=Mult(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=MatMult(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=Div(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=Mod(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=Pow(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=LShift(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=RShift(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=BitOr(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=BitXor(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=BitAnd(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[AugAssign(target=Name(id='v', ctx=Store(...)), op=FloorDiv(), 
value=Constant(value=1, kind=None))], type_ignores=[])
-Module(body=[For(target=Name(id='v', ctx=Store(...)), iter=Name(id='v', 
ctx=Load(...)), body=[Pass()], orelse=[], type_comment=None)], type_ignores=[])
-Module(body=[For(target=Name(id='v', ctx=Store(...)), iter=Name(id='v', 
ctx=Load(...)), body=[Pass()], orelse=[Pass()], type_comment=None)], 
type_ignores=[])
-Module(body=[While(test=Name(id='v', ctx=Load(...)), body=[Pass()], 
orelse=[])], type_ignores=[])
-Module(body=[While(test=Name(id='v', ctx=Load(...)), body=[Pass()], 
orelse=[Pass()])], type_ignores=[])
-Module(body=[If(test=Name(id='v', ctx=Load(...)), body=[Pass()], orelse=[])], 
type_ignores=[])
-Module(body=[If(test=Name(id='a', ctx=Load(...)), body=[Pass()], 
orelse=[If(test=Name(...), body=[Pass(...)], orelse=[])])], type_ignores=[])
-Module(body=[If(test=Name(id='a', ctx=Load(...)), body=[Pass()], 
orelse=[Pass()])], type_ignores=[])
-Module(body=[If(test=Name(id='a', ctx=Load(...)), body=[Pass()], 
orelse=[If(test=Name(...), body=[Pass(...)], orelse=[Pass(...)])])], 
type_ignores=[])
-Module(body=[If(test=Name(id='a', ctx=Load(...)), body=[Pass()], 
orelse=[If(test=Name(...), body=[Pass(...)], orelse=[If(...)])])], 
type_ignores=[])
+Module(body=[Delete(targets=[Name(id='v', ctx=Del())])], type_ignores=[])
+Module(body=[Assign(targets=[Name(id='v', ctx=Store())], 
value=Constant(value=1, kind=None), type_comment=None)], type_ignores=[])
+Module(body=[Assign(targets=[Tuple(elts=[Name(...), Name(...)], ctx=Store())], 
value=Name(id='c', ctx=Load()), type_comment=None)], type_ignores=[])
+Module(body=[Assign(targets=[Tuple(elts=[Name(...), Name(...)], ctx=Store())], 
value=Name(id='c', ctx=Load()), type_comment=None)], type_ignores=[])
+Module(body=[Assign(targets=[List(elts=[Name(...), Name(...)], ctx=Store())], 
value=Name(id='c', ctx=Load()), type_comment=None)], type_ignores=[])
+Module(body=[Assign(targets=[Subscript(value=Name(...), slice=Name(...), 
ctx=Store())], value=Name(id='c', ctx=Load()), type_comment=None)], 
type_ignores=[])
+Module(body=[AnnAssign(target=Name(id='x', ctx=Store()), 
annotation=Subscript(value=Name(...), slice=Tuple(...), ctx=Load()), 
value=None, simple=1)], type_ignores=[])
+Module(body=[AnnAssign(target=Name(id='x', ctx=Store()), 
annotation=Subscript(value=Name(...), slice=Tuple(...), ctx=Load()), 
value=None, simple=1)], type_ignores=[])
+Module(body=[AnnAssign(target=Name(id='x', ctx=Store()), 
annotation=Subscript(value=Name(...), slice=Tuple(...), ctx=Load()), 
value=None, simple=1)], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=Add(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=Sub(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=Mult(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=MatMult(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=Div(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=Mod(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=Pow(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=LShift(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=RShift(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=BitOr(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=BitXor(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=BitAnd(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[AugAssign(target=Name(id='v', ctx=Store()), op=FloorDiv(), 
value=Constant(value=1, kind=None))], type_ignores=[])
+Module(body=[For(target=Name(id='v', ctx=Store()), iter=Name(id='v', 
ctx=Load()), body=[Pass()], orelse=[], type_comment=None)], type_ignores=[])
+Module(body=[For(target=Name(id='v', ctx=Store()), iter=Name(id='v', 
ctx=Load()), body=[Pass()], orelse=[Pass()], type_comment=None)], 
type_ignores=[])
+Module(body=[While(test=Name(id='v', ctx=Load()), body=[Pass()], orelse=[])], 
type_ignores=[])
+Module(body=[While(test=Name(id='v', ctx=Load()), body=[Pass()], 
orelse=[Pass()])], type_ignores=[])
+Module(body=[If(test=Name(id='v', ctx=Load()), body=[Pass()], orelse=[])], 
type_ignores=[])
+Module(body=[If(test=Name(id='a', ctx=Load()), body=[Pass()], 
orelse=[If(test=Name(...), body=[Pass()], orelse=[])])], type_ignores=[])
+Module(body=[If(test=Name(id='a', ctx=Load()), body=[Pass()], 
orelse=[Pass()])], type_ignores=[])
+Module(body=[If(test=Name(id='a', ctx=Load()), body=[Pass()], 
orelse=[If(test=Name(...), body=[Pass()], orelse=[Pass()])])], type_ignores=[])
+Module(body=[If(test=Name(id='a', ctx=Load()), body=[Pass()], 
orelse=[If(test=Name(...), body=[Pass()], orelse=[If(...)])])], type_ignores=[])
 Module(body=[With(items=[withitem(context_expr=Name(...), 
optional_vars=None)], body=[Pass()], type_comment=None)], type_ignores=[])
 Module(body=[With(items=[withitem(context_expr=Name(...), optional_vars=None), 
withitem(context_expr=Name(...), optional_vars=None)], body=[Pass()], 
type_comment=None)], type_ignores=[])
 Module(body=[With(items=[withitem(context_expr=Name(...), 
optional_vars=Name(...))], body=[Pass()], type_comment=None)], type_ignores=[])
@@ -57,18 +57,18 @@ Module(body=[With(items=[withitem(context_expr=Name(...), 
optional_vars=Name(...
 Module(body=[With(items=[withitem(context_expr=Name(...), optional_vars=None), 
withitem(context_expr=Name(...), optional_vars=None)], body=[Pass()], 
type_comment=None)], type_ignores=[])
 Module(body=[Raise(exc=None, cause=None)], type_ignores=[])
 Module(body=[Raise(exc=Call(func=Name(...), args=[Constant(...)], 
keywords=[]), cause=None)], type_ignores=[])
-Module(body=[Raise(exc=Name(id='Exception', ctx=Load(...)), cause=None)], 
type_ignores=[])
+Module(body=[Raise(exc=Name(id='Exception', ctx=Load()), cause=None)], 
type_ignores=[])
 Module(body=[Raise(exc=Call(func=Name(...), args=[Constant(...)], 
keywords=[]), cause=Constant(value=None, kind=None))], type_ignores=[])
-Module(body=[Try(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name=None, body=[Pass(...)])], orelse=[], finalbody=[])], type_ignores=[])
-Module(body=[Try(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name='exc', body=[Pass(...)])], orelse=[], finalbody=[])], type_ignores=[])
+Module(body=[Try(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name=None, body=[Pass()])], orelse=[], finalbody=[])], type_ignores=[])
+Module(body=[Try(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name='exc', body=[Pass()])], orelse=[], finalbody=[])], type_ignores=[])
 Module(body=[Try(body=[Pass()], handlers=[], orelse=[], finalbody=[Pass()])], 
type_ignores=[])
-Module(body=[TryStar(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name=None, body=[Pass(...)])], orelse=[], finalbody=[])], type_ignores=[])
-Module(body=[TryStar(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name='exc', body=[Pass(...)])], orelse=[], finalbody=[])], type_ignores=[])
-Module(body=[Try(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name=None, body=[Pass(...)])], orelse=[Pass()], finalbody=[Pass()])], 
type_ignores=[])
-Module(body=[Try(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name='exc', body=[Pass(...)])], orelse=[Pass()], finalbody=[Pass()])], 
type_ignores=[])
-Module(body=[TryStar(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name='exc', body=[Pass(...)])], orelse=[Pass()], finalbody=[Pass()])], 
type_ignores=[])
-Module(body=[Assert(test=Name(id='v', ctx=Load(...)), msg=None)], 
type_ignores=[])
-Module(body=[Assert(test=Name(id='v', ctx=Load(...)), 
msg=Constant(value='message', kind=None))], type_ignores=[])
+Module(body=[TryStar(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name=None, body=[Pass()])], orelse=[], finalbody=[])], type_ignores=[])
+Module(body=[TryStar(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name='exc', body=[Pass()])], orelse=[], finalbody=[])], type_ignores=[])
+Module(body=[Try(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name=None, body=[Pass()])], orelse=[Pass()], finalbody=[Pass()])], 
type_ignores=[])
+Module(body=[Try(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name='exc', body=[Pass()])], orelse=[Pass()], finalbody=[Pass()])], 
type_ignores=[])
+Module(body=[TryStar(body=[Pass()], handlers=[ExceptHandler(type=Name(...), 
name='exc', body=[Pass()])], orelse=[Pass()], finalbody=[Pass()])], 
type_ignores=[])
+Module(body=[Assert(test=Name(id='v', ctx=Load()), msg=None)], type_ignores=[])
+Module(body=[Assert(test=Name(id='v', ctx=Load()), 
msg=Constant(value='message', kind=None))], type_ignores=[])
 Module(body=[Import(names=[alias(name='sys', asname=None)], is_lazy=0)], 
type_ignores=[])
 Module(body=[Import(names=[alias(name='foo', asname='bar')], is_lazy=0)], 
type_ignores=[])
 Module(body=[ImportFrom(module='sys', names=[alias(name='x', asname='y')], 
level=0, is_lazy=0)], type_ignores=[])
@@ -80,11 +80,11 @@ Module(body=[ImportFrom(module='sys', 
names=[alias(name='v', asname=None)], leve
 Module(body=[Global(names=['v'])], type_ignores=[])
 Module(body=[Expr(value=Constant(value=1, kind=None))], type_ignores=[])
 Module(body=[Pass()], type_ignores=[])
-Module(body=[For(target=Name(id='v', ctx=Store(...)), iter=Name(id='v', 
ctx=Load(...)), body=[Break()], orelse=[], type_comment=None)], type_ignores=[])
-Module(body=[For(target=Name(id='v', ctx=Store(...)), iter=Name(id='v', 
ctx=Load(...)), body=[Continue()], orelse=[], type_comment=None)], 
type_ignores=[])
-Module(body=[For(target=Tuple(elts=[Name(...), Name(...)], ctx=Store(...)), 
iter=Name(id='c', ctx=Load(...)), body=[Pass()], orelse=[], 
type_comment=None)], type_ignores=[])
-Module(body=[For(target=Tuple(elts=[Name(...), Name(...)], ctx=Store(...)), 
iter=Name(id='c', ctx=Load(...)), body=[Pass()], orelse=[], 
type_comment=None)], type_ignores=[])
-Module(body=[For(target=List(elts=[Name(...), Name(...)], ctx=Store(...)), 
iter=Name(id='c', ctx=Load(...)), body=[Pass()], orelse=[], 
type_comment=None)], type_ignores=[])
+Module(body=[For(target=Name(id='v', ctx=Store()), iter=Name(id='v', 
ctx=Load()), body=[Break()], orelse=[], type_comment=None)], type_ignores=[])
+Module(body=[For(target=Name(id='v', ctx=Store()), iter=Name(id='v', 
ctx=Load()), body=[Continue()], orelse=[], type_comment=None)], type_ignores=[])
+Module(body=[For(target=Tuple(elts=[Name(...), Name(...)], ctx=Store()), 
iter=Name(id='c', ctx=Load()), body=[Pass()], orelse=[], type_comment=None)], 
type_ignores=[])
+Module(body=[For(target=Tuple(elts=[Name(...), Name(...)], ctx=Store()), 
iter=Name(id='c', ctx=Load()), body=[Pass()], orelse=[], type_comment=None)], 
type_ignores=[])
+Module(body=[For(target=List(elts=[Name(...), Name(...)], ctx=Store()), 
iter=Name(id='c', ctx=Load()), body=[Pass()], orelse=[], type_comment=None)], 
type_ignores=[])
 Module(body=[Expr(value=GeneratorExp(elt=Tuple(...), 
generators=[comprehension(...)]))], type_ignores=[])
 Module(body=[Expr(value=DictComp(key=Name(...), value=Name(...), 
generators=[comprehension(...), comprehension(...)]))], type_ignores=[])
 Module(body=[Expr(value=DictComp(key=Name(...), value=Name(...), 
generators=[comprehension(...)]))], type_ignores=[])
@@ -98,11 +98,11 @@ Module(body=[Expr(value=Set(elts=[Starred(...), 
Constant(...)]))], type_ignores=
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Expr(value=Yield(...))], decorator_list=[], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Expr(value=YieldFrom(...))], decorator_list=[], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
 Module(body=[AsyncFunctionDef(name='f', args=arguments(posonlyargs=[], 
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Expr(value=ListComp(...))], decorator_list=[], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
-Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[Name(id='deco1', ctx=Load(...)), ..., 
Call(func=Name(...), args=[Constant(...)], keywords=[])], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
-Module(body=[AsyncFunctionDef(name='f', args=arguments(posonlyargs=[], 
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[Name(id='deco1', ctx=Load(...)), ..., 
Call(func=Name(...), args=[Constant(...)], keywords=[])], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
-Module(body=[ClassDef(name='C', bases=[], keywords=[], body=[Pass()], 
decorator_list=[Name(id='deco1', ctx=Load(...)), ..., Call(func=Name(...), 
args=[Constant(...)], keywords=[])], type_params=[])], type_ignores=[])
+Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[Name(id='deco1', ctx=Load()), ..., 
Call(func=Name(...), args=[Constant(...)], keywords=[])], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
+Module(body=[AsyncFunctionDef(name='f', args=arguments(posonlyargs=[], 
args=[], vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[Name(id='deco1', ctx=Load()), ..., 
Call(func=Name(...), args=[Constant(...)], keywords=[])], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
+Module(body=[ClassDef(name='C', bases=[], keywords=[], body=[Pass()], 
decorator_list=[Name(id='deco1', ctx=Load()), ..., Call(func=Name(...), 
args=[Constant(...)], keywords=[])], type_params=[])], type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[Call(func=Name(...), args=[GeneratorExp(...)], 
keywords=[])], returns=None, type_comment=None, type_params=[])], 
type_ignores=[])
-Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[Attribute(value=Attribute(...), attr='c', 
ctx=Load(...))], returns=None, type_comment=None, type_params=[])], 
type_ignores=[])
+Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[Attribute(value=Attribute(...), attr='c', 
ctx=Load())], returns=None, type_comment=None, type_params=[])], 
type_ignores=[])
 Module(body=[Expr(value=NamedExpr(target=Name(...), value=Constant(...)))], 
type_ignores=[])
 Module(body=[If(test=NamedExpr(target=Name(...), value=Call(...)), 
body=[Pass()], orelse=[])], type_ignores=[])
 Module(body=[While(test=NamedExpr(target=Name(...), value=Call(...)), 
body=[Pass()], orelse=[])], type_ignores=[])
@@ -116,12 +116,12 @@ Module(body=[FunctionDef(name='f', 
args=arguments(posonlyargs=[arg(...)], args=[
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[arg(...)], 
args=[arg(...)], vararg=None, kwonlyargs=[arg(...)], kw_defaults=[None], 
kwarg=None, defaults=[Constant(...), Constant(...)]), body=[Pass()], 
decorator_list=[], returns=None, type_comment=None, type_params=[])], 
type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[arg(...)], 
args=[arg(...)], vararg=None, kwonlyargs=[arg(...)], 
kw_defaults=[Constant(...)], kwarg=arg(...), defaults=[Constant(...), 
Constant(...)]), body=[Pass()], decorator_list=[], returns=None, 
type_comment=None, type_params=[])], type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[arg(...)], 
args=[arg(...)], vararg=None, kwonlyargs=[arg(...)], kw_defaults=[None], 
kwarg=arg(...), defaults=[Constant(...), Constant(...)]), body=[Pass()], 
decorator_list=[], returns=None, type_comment=None, type_params=[])], 
type_ignores=[])
-Module(body=[TypeAlias(name=Name(id='X', ctx=Store(...)), type_params=[], 
value=Name(id='int', ctx=Load(...)))], type_ignores=[])
-Module(body=[TypeAlias(name=Name(id='X', ctx=Store(...)), 
type_params=[TypeVar(name='T', bound=None, default_value=None)], 
value=Name(id='int', ctx=Load(...)))], type_ignores=[])
-Module(body=[TypeAlias(name=Name(id='X', ctx=Store(...)), 
type_params=[TypeVar(name='T', bound=None, default_value=None), ..., 
ParamSpec(name='P', default_value=None)], value=Tuple(elts=[Name(...), ..., 
Name(...)], ctx=Load(...)))], type_ignores=[])
-Module(body=[TypeAlias(name=Name(id='X', ctx=Store(...)), 
type_params=[TypeVar(name='T', bound=Name(...), default_value=None), ..., 
ParamSpec(name='P', default_value=None)], value=Tuple(elts=[Name(...), ..., 
Name(...)], ctx=Load(...)))], type_ignores=[])
-Module(body=[TypeAlias(name=Name(id='X', ctx=Store(...)), 
type_params=[TypeVar(name='T', bound=Tuple(...), default_value=None), ..., 
ParamSpec(name='P', default_value=None)], value=Tuple(elts=[Name(...), ..., 
Name(...)], ctx=Load(...)))], type_ignores=[])
-Module(body=[TypeAlias(name=Name(id='X', ctx=Store(...)), 
type_params=[TypeVar(name='T', bound=Name(...), default_value=Constant(...)), 
..., ParamSpec(name='P', default_value=Constant(...))], 
value=Tuple(elts=[Name(...), ..., Name(...)], ctx=Load(...)))], type_ignores=[])
+Module(body=[TypeAlias(name=Name(id='X', ctx=Store()), type_params=[], 
value=Name(id='int', ctx=Load()))], type_ignores=[])
+Module(body=[TypeAlias(name=Name(id='X', ctx=Store()), 
type_params=[TypeVar(name='T', bound=None, default_value=None)], 
value=Name(id='int', ctx=Load()))], type_ignores=[])
+Module(body=[TypeAlias(name=Name(id='X', ctx=Store()), 
type_params=[TypeVar(name='T', bound=None, default_value=None), ..., 
ParamSpec(name='P', default_value=None)], value=Tuple(elts=[Name(...), ..., 
Name(...)], ctx=Load()))], type_ignores=[])
+Module(body=[TypeAlias(name=Name(id='X', ctx=Store()), 
type_params=[TypeVar(name='T', bound=Name(...), default_value=None), ..., 
ParamSpec(name='P', default_value=None)], value=Tuple(elts=[Name(...), ..., 
Name(...)], ctx=Load()))], type_ignores=[])
+Module(body=[TypeAlias(name=Name(id='X', ctx=Store()), 
type_params=[TypeVar(name='T', bound=Tuple(...), default_value=None), ..., 
ParamSpec(name='P', default_value=None)], value=Tuple(elts=[Name(...), ..., 
Name(...)], ctx=Load()))], type_ignores=[])
+Module(body=[TypeAlias(name=Name(id='X', ctx=Store()), 
type_params=[TypeVar(name='T', bound=Name(...), default_value=Constant(...)), 
..., ParamSpec(name='P', default_value=Constant(...))], 
value=Tuple(elts=[Name(...), ..., Name(...)], ctx=Load()))], type_ignores=[])
 Module(body=[ClassDef(name='X', bases=[], keywords=[], body=[Pass()], 
decorator_list=[], type_params=[TypeVar(name='T', bound=None, 
default_value=None)])], type_ignores=[])
 Module(body=[ClassDef(name='X', bases=[], keywords=[], body=[Pass()], 
decorator_list=[], type_params=[TypeVar(name='T', bound=None, 
default_value=None), ..., ParamSpec(name='P', default_value=None)])], 
type_ignores=[])
 Module(body=[ClassDef(name='X', bases=[], keywords=[], body=[Pass()], 
decorator_list=[], type_params=[TypeVar(name='T', bound=Name(...), 
default_value=None), ..., ParamSpec(name='P', default_value=None)])], 
type_ignores=[])
@@ -132,37 +132,37 @@ Module(body=[FunctionDef(name='f', 
args=arguments(posonlyargs=[], args=[], varar
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=None, type_comment=None, 
type_params=[TypeVar(name='T', bound=Name(...), default_value=None), ..., 
ParamSpec(name='P', default_value=None)])], type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=None, type_comment=None, 
type_params=[TypeVar(name='T', bound=Tuple(...), default_value=None), ..., 
ParamSpec(name='P', default_value=None)])], type_ignores=[])
 Module(body=[FunctionDef(name='f', args=arguments(posonlyargs=[], args=[], 
vararg=None, kwonlyargs=[], kw_defaults=[], kwarg=None, defaults=[]), 
body=[Pass()], decorator_list=[], returns=None, type_comment=None, 
type_params=[TypeVar(name='T', bound=Name(...), default_value=Constant(...)), 
..., ParamSpec(name='P', default_value=Constant(...))])], type_ignores=[])
-Module(body=[Match(subject=Name(id='x', ctx=Load(...)), 
cases=[match_case(pattern=MatchValue(...), guard=None, body=[Pass(...)])])], 
type_ignores=[])
-Module(body=[Match(subject=Name(id='x', ctx=Load(...)), 
cases=[match_case(pattern=MatchValue(...), guard=None, body=[Pass(...)]), 
match_case(pattern=MatchAs(...), guard=None, body=[Pass(...)])])], 
type_ignores=[])
+Module(body=[Match(subject=Name(id='x', ctx=Load()), 
cases=[match_case(pattern=MatchValue(...), guard=None, body=[Pass()])])], 
type_ignores=[])
+Module(body=[Match(subject=Name(id='x', ctx=Load()), 
cases=[match_case(pattern=MatchValue(...), guard=None, body=[Pass()]), 
match_case(pattern=MatchAs(...), guard=None, body=[Pass()])])], type_ignores=[])
 Module(body=[Expr(value=Constant(value=None, kind=None))], type_ignores=[])
 Module(body=[Expr(value=Constant(value=True, kind=None))], type_ignores=[])
 Module(body=[Expr(value=Constant(value=False, kind=None))], type_ignores=[])
-Module(body=[Expr(value=BoolOp(op=And(...), values=[Name(...), Name(...)]))], 
type_ignores=[])
-Module(body=[Expr(value=BoolOp(op=Or(...), values=[Name(...), Name(...)]))], 
type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=Add(...), right=Name(...)))], 
type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=Sub(...), right=Name(...)))], 
type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=Mult(...), 
right=Name(...)))], type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=Div(...), right=Name(...)))], 
type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=MatMult(...), 
right=Name(...)))], type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=FloorDiv(...), 
right=Name(...)))], type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=Pow(...), right=Name(...)))], 
type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=Mod(...), right=Name(...)))], 
type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=RShift(...), 
right=Name(...)))], type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=LShift(...), 
right=Name(...)))], type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=BitXor(...), 
right=Name(...)))], type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=BitOr(...), 
right=Name(...)))], type_ignores=[])
-Module(body=[Expr(value=BinOp(left=Name(...), op=BitAnd(...), 
right=Name(...)))], type_ignores=[])
-Module(body=[Expr(value=UnaryOp(op=Not(...), operand=Name(...)))], 
type_ignores=[])
-Module(body=[Expr(value=UnaryOp(op=UAdd(...), operand=Name(...)))], 
type_ignores=[])
-Module(body=[Expr(value=UnaryOp(op=USub(...), operand=Name(...)))], 
type_ignores=[])
-Module(body=[Expr(value=UnaryOp(op=Invert(...), operand=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BoolOp(op=And(), values=[Name(...), Name(...)]))], 
type_ignores=[])
+Module(body=[Expr(value=BoolOp(op=Or(), values=[Name(...), Name(...)]))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=Add(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=Sub(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=Mult(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=Div(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=MatMult(), 
right=Name(...)))], type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=FloorDiv(), 
right=Name(...)))], type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=Pow(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=Mod(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=RShift(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=LShift(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=BitXor(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=BitOr(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=BinOp(left=Name(...), op=BitAnd(), right=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=UnaryOp(op=Not(), operand=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=UnaryOp(op=UAdd(), operand=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=UnaryOp(op=USub(), operand=Name(...)))], 
type_ignores=[])
+Module(body=[Expr(value=UnaryOp(op=Invert(), operand=Name(...)))], 
type_ignores=[])
 Module(body=[Expr(value=Lambda(args=arguments(...), body=Constant(...)))], 
type_ignores=[])
 Module(body=[Expr(value=Dict(keys=[Constant(...)], values=[Constant(...)]))], 
type_ignores=[])
 Module(body=[Expr(value=Dict(keys=[], values=[]))], type_ignores=[])
 Module(body=[Expr(value=Set(elts=[Constant(...)]))], type_ignores=[])
 Module(body=[Expr(value=Dict(keys=[Constant(...)], values=[Constant(...)]))], 
type_ignores=[])
-Module(body=[Expr(value=List(elts=[Constant(...), Constant(...)], 
ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=Tuple(elts=[Constant(...)], ctx=Load(...)))], 
type_ignores=[])
+Module(body=[Expr(value=List(elts=[Constant(...), Constant(...)], 
ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=Tuple(elts=[Constant(...)], ctx=Load()))], 
type_ignores=[])
 Module(body=[Expr(value=Set(elts=[Constant(...), Constant(...)]))], 
type_ignores=[])
 Module(body=[Expr(value=ListComp(elt=Name(...), 
generators=[comprehension(...)]))], type_ignores=[])
 Module(body=[Expr(value=GeneratorExp(elt=Name(...), 
generators=[comprehension(...)]))], type_ignores=[])
@@ -177,15 +177,15 @@ Module(body=[Expr(value=SetComp(elt=Tuple(...), 
generators=[comprehension(...)])
 Module(body=[Expr(value=GeneratorExp(elt=Tuple(...), 
generators=[comprehension(...)]))], type_ignores=[])
 Module(body=[Expr(value=GeneratorExp(elt=Tuple(...), 
generators=[comprehension(...)]))], type_ignores=[])
 Module(body=[Expr(value=GeneratorExp(elt=Tuple(...), 
generators=[comprehension(...)]))], type_ignores=[])
-Module(body=[Expr(value=Compare(left=Constant(...), ops=[Lt(...), Lt(...)], 
comparators=[Constant(...), Constant(...)]))], type_ignores=[])
-Module(body=[Expr(value=Compare(left=Name(...), ops=[Eq(...)], 
comparators=[Name(...)]))], type_ignores=[])
-Module(body=[Expr(value=Compare(left=Name(...), ops=[LtE(...)], 
comparators=[Name(...)]))], type_ignores=[])
-Module(body=[Expr(value=Compare(left=Name(...), ops=[GtE(...)], 
comparators=[Name(...)]))], type_ignores=[])
-Module(body=[Expr(value=Compare(left=Name(...), ops=[NotEq(...)], 
comparators=[Name(...)]))], type_ignores=[])
-Module(body=[Expr(value=Compare(left=Name(...), ops=[Is(...)], 
comparators=[Name(...)]))], type_ignores=[])
-Module(body=[Expr(value=Compare(left=Name(...), ops=[IsNot(...)], 
comparators=[Name(...)]))], type_ignores=[])
-Module(body=[Expr(value=Compare(left=Name(...), ops=[In(...)], 
comparators=[Name(...)]))], type_ignores=[])
-Module(body=[Expr(value=Compare(left=Name(...), ops=[NotIn(...)], 
comparators=[Name(...)]))], type_ignores=[])
+Module(body=[Expr(value=Compare(left=Constant(...), ops=[Lt(), Lt()], 
comparators=[Constant(...), Constant(...)]))], type_ignores=[])
+Module(body=[Expr(value=Compare(left=Name(...), ops=[Eq()], 
comparators=[Name(...)]))], type_ignores=[])
+Module(body=[Expr(value=Compare(left=Name(...), ops=[LtE()], 
comparators=[Name(...)]))], type_ignores=[])
+Module(body=[Expr(value=Compare(left=Name(...), ops=[GtE()], 
comparators=[Name(...)]))], type_ignores=[])
+Module(body=[Expr(value=Compare(left=Name(...), ops=[NotEq()], 
comparators=[Name(...)]))], type_ignores=[])
+Module(body=[Expr(value=Compare(left=Name(...), ops=[Is()], 
comparators=[Name(...)]))], type_ignores=[])
+Module(body=[Expr(value=Compare(left=Name(...), ops=[IsNot()], 
comparators=[Name(...)]))], type_ignores=[])
+Module(body=[Expr(value=Compare(left=Name(...), ops=[In()], 
comparators=[Name(...)]))], type_ignores=[])
+Module(body=[Expr(value=Compare(left=Name(...), ops=[NotIn()], 
comparators=[Name(...)]))], type_ignores=[])
 Module(body=[Expr(value=Call(func=Name(...), args=[], keywords=[]))], 
type_ignores=[])
 Module(body=[Expr(value=Call(func=Name(...), args=[Constant(...), ..., 
Starred(...)], keywords=[keyword(...), keyword(...)]))], type_ignores=[])
 Module(body=[Expr(value=Call(func=Name(...), args=[Starred(...)], 
keywords=[]))], type_ignores=[])
@@ -193,19 +193,19 @@ Module(body=[Expr(value=Call(func=Name(...), 
args=[GeneratorExp(...)], keywords=
 Module(body=[Expr(value=Constant(value=10, kind=None))], type_ignores=[])
 Module(body=[Expr(value=Constant(value=1j, kind=None))], type_ignores=[])
 Module(body=[Expr(value=Constant(value='string', kind=None))], type_ignores=[])
-Module(body=[Expr(value=Attribute(value=Name(...), attr='b', ctx=Load(...)))], 
type_ignores=[])
-Module(body=[Expr(value=Subscript(value=Name(...), slice=Slice(...), 
ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=Name(id='v', ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=List(elts=[Constant(...), ..., Constant(...)], 
ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=List(elts=[], ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=Tuple(elts=[Constant(...), ..., Constant(...)], 
ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=Tuple(elts=[Constant(...), ..., Constant(...)], 
ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=Tuple(elts=[], ctx=Load(...)))], type_ignores=[])
+Module(body=[Expr(value=Attribute(value=Name(...), attr='b', ctx=Load()))], 
type_ignores=[])
+Module(body=[Expr(value=Subscript(value=Name(...), slice=Slice(...), 
ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=Name(id='v', ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=List(elts=[Constant(...), ..., Constant(...)], 
ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=List(elts=[], ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=Tuple(elts=[Constant(...), ..., Constant(...)], 
ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=Tuple(elts=[Constant(...), ..., Constant(...)], 
ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=Tuple(elts=[], ctx=Load()))], type_ignores=[])
 Module(body=[Expr(value=Call(func=Attribute(...), args=[Subscript(...)], 
keywords=[]))], type_ignores=[])
-Module(body=[Expr(value=Subscript(value=List(...), slice=Slice(...), 
ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=Subscript(value=List(...), slice=Slice(...), 
ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=Subscript(value=List(...), slice=Slice(...), 
ctx=Load(...)))], type_ignores=[])
-Module(body=[Expr(value=Subscript(value=List(...), slice=Slice(...), 
ctx=Load(...)))], type_ignores=[])
+Module(body=[Expr(value=Subscript(value=List(...), slice=Slice(...), 
ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=Subscript(value=List(...), slice=Slice(...), 
ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=Subscript(value=List(...), slice=Slice(...), 
ctx=Load()))], type_ignores=[])
+Module(body=[Expr(value=Subscript(value=List(...), slice=Slice(...), 
ctx=Load()))], type_ignores=[])
 Module(body=[Expr(value=IfExp(test=Name(...), body=Call(...), 
orelse=Call(...)))], type_ignores=[])
 Module(body=[Expr(value=JoinedStr(values=[FormattedValue(...)]))], 
type_ignores=[])
 Module(body=[Expr(value=JoinedStr(values=[FormattedValue(...)]))], 
type_ignores=[])
diff --git 
a/Misc/NEWS.d/next/Core_and_Builtins/2026-08-18-18-13-47.gh-issue-156021.3mK5c5.rst
 
b/Misc/NEWS.d/next/Core_and_Builtins/2026-08-18-18-13-47.gh-issue-156021.3mK5c5.rst
new file mode 100644
index 000000000000000..630a9776d08d81a
--- /dev/null
+++ 
b/Misc/NEWS.d/next/Core_and_Builtins/2026-08-18-18-13-47.gh-issue-156021.3mK5c5.rst
@@ -0,0 +1,3 @@
+Empty :mod:`AST <ast>` node representations no longer include ``...`` when
+the recursion depth limit is exceeded, making them easier to distinguish
+from non-empty ones. Patch by Bartosz Sławecki.
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index b2581e48810b893..08a433277660794 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -1480,37 +1480,36 @@ def visitModule(self, mod):
         return NULL;
     }
 
-    if (depth <= 0) {
-        return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name);
-    }
-
-    int status = Py_ReprEnter((PyObject *)self);
-    if (status != 0) {
-        if (status < 0) {
-            return NULL;
-        }
-        return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name);
-    }
-
     PyObject *fields;
     if (PyObject_GetOptionalAttr((PyObject *)Py_TYPE(self), state->_fields, 
&fields) < 0) {
-        Py_ReprLeave((PyObject *)self);
         return NULL;
     }
 
     Py_ssize_t numfields = PySequence_Size(fields);
     if (numfields < 0) {
-        Py_ReprLeave((PyObject *)self);
         Py_DECREF(fields);
         return NULL;
     }
 
     if (numfields == 0) {
-        Py_ReprLeave((PyObject *)self);
         Py_DECREF(fields);
         return PyUnicode_FromFormat("%s()", Py_TYPE(self)->tp_name);
     }
 
+    if (depth <= 0) {
+        Py_DECREF(fields);
+        return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name);
+    }
+
+    int status = Py_ReprEnter((PyObject *)self);
+    if (status != 0) {
+        Py_DECREF(fields);
+        if (status < 0) {
+            return NULL;
+        }
+        return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name);
+    }
+
     const char* tp_name = Py_TYPE(self)->tp_name;
     PyUnicodeWriter *writer = PyUnicodeWriter_Create(0);
     if (writer == NULL) {
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 383384fc1706b47..87f160ed19301ea 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -5792,37 +5792,36 @@ ast_repr_max_depth(AST_object *self, int depth)
         return NULL;
     }
 
-    if (depth <= 0) {
-        return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name);
-    }
-
-    int status = Py_ReprEnter((PyObject *)self);
-    if (status != 0) {
-        if (status < 0) {
-            return NULL;
-        }
-        return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name);
-    }
-
     PyObject *fields;
     if (PyObject_GetOptionalAttr((PyObject *)Py_TYPE(self), state->_fields, 
&fields) < 0) {
-        Py_ReprLeave((PyObject *)self);
         return NULL;
     }
 
     Py_ssize_t numfields = PySequence_Size(fields);
     if (numfields < 0) {
-        Py_ReprLeave((PyObject *)self);
         Py_DECREF(fields);
         return NULL;
     }
 
     if (numfields == 0) {
-        Py_ReprLeave((PyObject *)self);
         Py_DECREF(fields);
         return PyUnicode_FromFormat("%s()", Py_TYPE(self)->tp_name);
     }
 
+    if (depth <= 0) {
+        Py_DECREF(fields);
+        return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name);
+    }
+
+    int status = Py_ReprEnter((PyObject *)self);
+    if (status != 0) {
+        Py_DECREF(fields);
+        if (status < 0) {
+            return NULL;
+        }
+        return PyUnicode_FromFormat("%s(...)", Py_TYPE(self)->tp_name);
+    }
+
     const char* tp_name = Py_TYPE(self)->tp_name;
     PyUnicodeWriter *writer = PyUnicodeWriter_Create(0);
     if (writer == NULL) {

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to