This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: syntax errors on continuation lines
Type: enhancement Stage: patch review
Components: Interpreter Core Versions: Python 3.1, Python 2.7
process
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: Nosy List: BreamoreBoy, georg.brandl, rcmiller, sonderblade
Priority: normal Keywords: patch

Created on 2006-06-07 02:49 by rcmiller, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
continuation_syntax_error.diff rcmiller, 2006-06-07 02:49 Patch for syntax errors on continuation lines
Messages (6)
msg50438 - (view) Author: Roger Miller (rcmiller) Date: 2006-06-07 02:49
This patch modifies syntax error location information
to indicate when an error is detected on a statement
continuation line, for example
     File "test.py", line 42 (continuing line 41)
The intent is to be less confusing when an error
reported on one line is actually the result of
unbalanced brackets on a previous line.  The change
adds a new 'stmt_lineno' field to the SyntaxError
exception, containing the line number on which the
statement started.

The patch is against r46701 and was developed and
tested on Fedora 4 Linux.
msg50439 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2006-06-08 13:05
Logged In: YES 
user_id=849994

Note that you cannot give a "|" inside a tuple specification
in PyArg_ParseTuple.
msg50440 - (view) Author: Björn Lindqvist (sonderblade) Date: 2007-03-12 23:33
Works nicely:

>>> (3,
... 8,
... 4 +,
  File "<stdin>", line 3 (continuing line 1)
    4 +,
       ^
SyntaxError: invalid syntax

The patch does not apply cleanly because of changes in traceback.py, but it is easy to fix. But IMHO, the special casing that checks for the presence of the extra stmt_lineno attribute is not nice at all. I think it would be better if stmt_lineno always was included and equal to lineno in the normal case. Then traceback.py would just check if stmt_lineno differs from lineno, and if so, append the extra '(continuing line %d)' information.
msg84825 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2009-03-31 16:21
I'm not sure if this is necessary; you could argue that the syntax error
really is on the last line, because there the parenthesis is missing.
msg110452 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2010-07-16 15:14
msg84825 asks if this is necessary.  Strikes me as being six of one, half a dozen of the other.  As few people have shown any interest I'm inclined to close this unless someone pops out of the woodwork.
msg110817 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2010-07-19 22:25
Closing as noone has responded.
History
Date User Action Args
2022-04-11 14:56:17adminsetgithub: 43468
2010-07-19 22:25:44BreamoreBoysetstatus: pending -> closed
resolution: wont fix
messages: + msg110817
2010-07-16 15:14:29BreamoreBoysetstatus: open -> pending
nosy: + BreamoreBoy
messages: + msg110452

2009-03-31 16:21:05georg.brandlsetmessages: + msg84825
2009-03-21 03:43:40ajaksu2setstage: patch review
type: enhancement
versions: + Python 3.1, Python 2.7, - Python 2.5
2006-06-07 02:49:17rcmillercreate