gh-126835: Remove unused docstring const #130016
Open
+31
−30
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If no docstring present, extra unused constant from CFG optimization pass will reuse always preserved slot for docstring which leads to unused constant in
co_consts
. This breaks some unrelated tests when migrating optimizations from AST to CFG. Bug example:cpython/Lib/test/test_compile.py
Lines 821 to 844 in 12bd15f
First test case does not have
True
inco_consts
but second one does even though it is not used (not used in first either) which is funny. Another example:None
is inco_consts
even thoughNone
is not used inf
. It sneaks in by implicitly addingreturn None
when compiling code unit, and it stays there because of always preserved slot for docstring.Related comment: #126835 (comment)