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.
Works nicely: >>> (3, ... 8, ... 4 +, File "", 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.
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.