Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
bpo-43833: Emit warnings for numeric literals followed by keyword#25466
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
bpo-43833: Emit warnings for numeric literals followed by keyword#25466
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Emit a deprecation warning if the numeric literal is immediately followed byone of keywords: and, else, for, if, in, is, or. Raise a syntax error withmore informative message if it is immediately followed by other keyword oridentifier.
pablogsal commentedApr 18, 2021 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
I am not a fan of this solution as this is coupling the tokenizer and the grammar, which is a known problematic behaviour. In particular, I don't like the fact that we need to manually check against every keyword explicitly. Cannot we just error if we find any character that is not a whitespace or a valid numeric literal? We should try to fix this in a way they is keyword-agnostic |
Checking against the list of valid keywords is a temporary code. It is because we want to do gradual deprecation and only emit a warning for currently valid code. At the end, there will be only syntax error and no list of keywords. If emit a warning unconditionally, this will break some tests for invalid numeric literals ( |
pablogsal commentedApr 18, 2021 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Thanks for the clarification. Could you add some comments regarding this plans to the source code of the change to make sure this context is there when reading the code? In that case I assume that the main thing to do here is to all agree on the plan. I personally find the plan reasonable so I'm on board, but I would go directly to SyntaxWarning and in 1 or 2 releases making it a SyntaxError. |
Sure. I added a comment in As for SyntaxWarning vs DeprecationWarning, we still emit DeprecationWarning for invalid character escapes (like in |
@pablogsal, do you want to add these warnings in 3.10 or 3.11 if add them at all? |
I would like them to be included in Python 3.10 so we can make them illegal sooner. What do you think? |
Uh oh!
There was an error while loading.Please reload this page.
@serhiy-storchaka: Status check is done, and it's a success ✅ . |
Thanks@serhiy-storchaka for the PR 🌮🎉.. I'm working now to backport this PR to: 3.10. |
…thonGH-25466)Emit a deprecation warning if the numeric literal is immediately followed byone of keywords: and, else, for, if, in, is, or. Raise a syntax error withmore informative message if it is immediately followed by other keyword oridentifier.Automerge-Triggered-By: GH:pablogsal(cherry picked from commit2ea6d89)Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
bedevere-bot commentedJun 8, 2021
GH-26614 is a backport of this pull request to the3.10 branch. |
…-25466)Emit a deprecation warning if the numeric literal is immediately followed byone of keywords: and, else, for, if, in, is, or. Raise a syntax error withmore informative message if it is immediately followed by other keyword oridentifier.Automerge-Triggered-By: GH:pablogsal(cherry picked from commit2ea6d89)Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Uh oh!
There was an error while loading.Please reload this page.
Emit a deprecation warning if the numeric literal is immediately followed by
one of keywords: and, else, for, if, in, is, or. Raise a syntax error with
more informative message if it is immediately followed by other keyword or
identifier.
https://bugs.python.org/issue43833
Automerge-Triggered-By: GH:pablogsal