Matthias Bussonnier <bussonniermatth...@gmail.com> added the comment:

Seem to not be in the new parser but simply in codeop in particular `def 
_maybe_compile`

The logic seem weird (but weird logic usually have a reason), it try to compile 
thrice by appending many `\n`.

1) Why do that and not return the first successful compile directly ? I'm not 
sure. 
2) It does compare the repr of error when  compile(source + "\n") and 
compile(source+'\n\n') and only raise if both are identical (which they are not 
in the new parser, they differ by `\n`...)

SyntaxError('invalid syntax', ('<input>', 1, 6, 'def a-b')) 
vs
SyntaxError('invalid syntax', ('<input>', 1, 6, 'def a-b\n'))


This logic seem to go back to the 2000s.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40334>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to