Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Closed
Description
Bug report
Bug description:
In the grammar file, a soft keyword being the start of an expression makes it fail the path where the error message has this appended: "Perhaps you forgot a comma?"
However, it also apparently does the same thing for any identifer that is a prefix ofany soft keyword.
>>># multi-letter cases>>># fine, expected behavior>>> (test x) File "<stdin>", line 1 (test x) ^^^^^^SyntaxError: invalid syntax. Perhaps you forgot a comma?>>> (match_ x) File "<stdin>", line 1 (match_ x) ^^^^^^^^SyntaxError: invalid syntax. Perhaps you forgot a comma?>>> (match x) File "<stdin>", line 1 (match x) ^SyntaxError: invalid syntax>>># unexpected behavior>>> (ma x) File "<stdin>", line 1 (ma x) ^SyntaxError: invalid syntax>>># single-letter bugs>>># expected behavior>>> (f x) File "<stdin>", line 1 (f x) ^^^SyntaxError: invalid syntax. Perhaps you forgot a comma?>>># unexpected behavior>>> (m x) File "<stdin>", line 1 (m x) ^SyntaxError: invalid syntax
Sincem is a prefix ofmatch, "forgetting a comma" (i.e. being in a situation that normally triggers that specific error) doesn't provide the same error message as other "normal" identifiers.
CPython versions tested on:
3.14
Operating systems tested on:
Windows
Linked PRs
- gh-130077: Enhance GrammarVisitor to differentiate visit methods for single and multi-character node classes #130162
- gh-130077: Properly match full soft keywords in the parser #135317
- [3.14] gh-130077: Properly match full soft keywords in the parser (GH-135317) #135348
- [3.13] gh-130077: Properly match full soft keywords in the parser (GH-135317) #135399
- [3.12] gh-130077: Properly match full soft keywords in the parser (GH-135317) #135400