-
-
Notifications
You must be signed in to change notification settings - Fork 32.1k
gh-134280: Disable constant folding for ~ with a boolean argument #134982
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
gh-134280: Disable constant folding for ~ with a boolean argument #134982
Conversation
This moves the deprecation warning from compile time to runtime.
3.14 and 3.13 differ from main, so I would do backporting step by step. |
If we can detect this in https://github.com/python/cpython/blob/main/Python/ast_preprocess.c then we get the warning in both static analysis and execution. |
Yes, but we only add SyntaxWarning for very common errors. |
Is it hard to detect this in the preprocessor? |
I do not know. But even a couple lines of code is a high price for this feature. And it will be more than a couple lines. |
if (PyBool_Check(operand)) { // ~bool is deprecated | ||
return NULL; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you want to add a comment that this should be removed once the ~bool
depreciation expires? When it raises in the future, raising at compile time is equally good if not better and it makes the code slightly simpler by removing the special casing.
This moves the deprecation warning from compile time to runtime.
~bool
deprecation not reported for literals #134280