On 06Aug2023 22:41, Peter J. Holzer <hjp-pyt...@hjp.at> wrote:
Mostly, error messages got a lot better in Python 3.10, but this one had
me scratching my head for a few minutes.

Consider this useless and faulty script:
------------------------------------------------------------------------
r = {
   "x": (1 + 2 + 3)
   "y": (4 + 5 + 6)
   "z": (7 + 8 + 9)
}
------------------------------------------------------------------------
[...]
Python 3.10 and 3.11 report:

------------------------------------------------------------------------
 File "/home/hjp/tmp/foo", line 2
   "x": (1 + 2 + 3)
         ^^^^^^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma?
------------------------------------------------------------------------

The error message is now a lot better, of course, but the fact that it
points at the expression *before* the error completely threw me. The
underlined expression is clearly not missing a comma, nor is there an
error before that.

Well, it's hard to underline a token which isn't present. But maybe the message could be more evocative:

    SyntaxError: invalid syntax. Perhaps you forgot a comma after the 
underlined code?

Is this "clairvoyant" behaviour a side-effect of the new parser or was
that a deliberate decision?

I have the vague impression the new parser enabled the improved reporting.

Used to use a Pascal compiler once which was uncannily good at suggesting where you'd missing a semicolon.

Cheers,
Cameron Simpson <c...@cskk.id.au>
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to