Eric V. Smith added the comment:

Terry:

The eval is important. The bug was in evaluating an f-string that consisted of 
two bytes: a backslash followed by a newline.

And just as:
eval("'\\\n'") == ''  # len == 0
so should
eval("f'\\\n'") == ''  # len == 0

It's the second one that was throwing the assertion. The parser was seeing 
these bytes:
f  0x66
'  0x27
\  0x5c
nl 0xa
'  0x27
and behaving badly (to say the least) by asserting.

Without the eval, I can't think of a way to have a string consisting of those 
two bytes, but I assume someone who's trickier than I can come up with a way.

----------
resolution:  -> fixed
status: open -> closed

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

Reply via email to