Message173726
Looking at the changes in the patch it seems to me that, in at least a few cases, it's better to have a bare "invalid syntax" than a misleading error.
For example:
>>> dict(a = i for i in range(10))
+ SyntaxError: invalid syntax - ')' expected
The () are ok, the message is misleading.
>>> obj.None = 1
+SyntaxError: invalid syntax - name expected
'name' here is a bit vague.
>>> def f(x, None):
... pass
+SyntaxError: invalid syntax - ')' expected
>>> def f(*None):
... pass
+SyntaxError: invalid syntax - ')' expected
Here the () are ok too.
>>> def f(**None):
... pass
+SyntaxError: invalid syntax - name expected
Here I would have expected the "')' expected" like in the previous example, but there's "name" instead (which is a bit better, albeit inconsistent).
I wouldn't consider this an improvement, but for other situations the error message is probably useful.
I see 3 options here:
1) we find a way to show the expected token only when the message is not misleading;
2) if the expected token is useful more often than it is misleading, then we could apply the patch as is;
3) if it is misleading more often than it is useful, it's probably better to reject the patch. |
|
Date |
User |
Action |
Args |
2012-10-25 00:16:27 | ezio.melotti | set | recipients:
+ ezio.melotti, rhettinger, sean_gillespie, ajaksu2, oliver_gramberg, benjamin.peterson, dmalcolm, serhiy.storchaka |
2012-10-25 00:16:26 | ezio.melotti | set | messageid: <1351124186.74.0.815374224935.issue1634034@psf.upfronthosting.co.za> |
2012-10-25 00:16:26 | ezio.melotti | link | issue1634034 messages |
2012-10-25 00:16:25 | ezio.melotti | create | |
|