https://github.com/python/cpython/commit/a35c683da55e77c96828fd0421640787337cfc64
commit: a35c683da55e77c96828fd0421640787337cfc64
branch: main
author: dr-carlos <[email protected]>
committer: JelleZijlstra <[email protected]>
date: 2025-11-19T18:08:08-10:00
summary:

gh-141489: Simplify closure/freevar iteration in 
`annotationlib._build_closure()` (#141490)

files:
M Lib/annotationlib.py

diff --git a/Lib/annotationlib.py b/Lib/annotationlib.py
index 33907b1fc2a53a..a5788cdbfae3f5 100644
--- a/Lib/annotationlib.py
+++ b/Lib/annotationlib.py
@@ -844,14 +844,9 @@ def call_annotate_function(annotate, format, *, 
owner=None, _is_evaluate=False):
 def _build_closure(annotate, owner, is_class, stringifier_dict, *, 
allow_evaluation):
     if not annotate.__closure__:
         return None, None
-    freevars = annotate.__code__.co_freevars
     new_closure = []
     cell_dict = {}
-    for i, cell in enumerate(annotate.__closure__):
-        if i < len(freevars):
-            name = freevars[i]
-        else:
-            name = "__cell__"
+    for name, cell in zip(annotate.__code__.co_freevars, annotate.__closure__, 
strict=True):
         cell_dict[name] = cell
         new_cell = None
         if allow_evaluation:

_______________________________________________
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