summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2023-07-06 00:53:30 (GMT)
committerGitHub <noreply@github.com>2023-07-06 00:53:30 (GMT)
commit1e4c2359e4b88a237ca0ac7d1d0cac8411ba0278 (patch)
treeb42583b135f7150724802a72cf0243a76c63d5e8 /Doc
parent7b615a1573b8a119e8ad27915912da745756a547 (diff)
downloadcpython-1e4c2359e4b88a237ca0ac7d1d0cac8411ba0278.zip
cpython-1e4c2359e4b88a237ca0ac7d1d0cac8411ba0278.tar.gz
cpython-1e4c2359e4b88a237ca0ac7d1d0cac8411ba0278.tar.bz2
[3.12] gh-105256: What's New note for comprehension over locals() (GH-106378) (#106471)
gh-105256: What's New note for comprehension over locals() (GH-106378) (cherry picked from commit 13aefd175e3c04529251f175c23cb3ed88451fd0) Co-authored-by: Carl Meyer <carl@oddbird.net>
Diffstat (limited to 'Doc')
-rw-r--r--Doc/whatsnew/3.12.rst6
1 files changed, 6 insertions, 0 deletions
diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst
index ec13ed5..eba3e22 100644
--- a/Doc/whatsnew/3.12.rst
+++ b/Doc/whatsnew/3.12.rst
@@ -253,6 +253,12 @@ Inlining does result in a few visible behavior changes:
* Calling :func:`locals` inside a comprehension now includes variables
from outside the comprehension, and no longer includes the synthetic ``.0``
variable for the comprehension "argument".
+* A comprehension iterating directly over ``locals()`` (e.g. ``[k for k in
+ locals()]``) may see "RuntimeError: dictionary changed size during iteration"
+ when run under tracing (e.g. code coverage measurement). This is the same
+ behavior already seen in e.g. ``for k in locals():``. To avoid the error, first
+ create a list of keys to iterate over: ``keys = list(locals()); [k for k in
+ keys]``.
Contributed by Carl Meyer and Vladimir Matveev in :pep:`709`.