py/lexer: Wrap in parenthesis all f-string arguments passed to format.
This is important for literal tuples, e.g.
f"{a,b,}, {c}" --> "{}".format((a,b), (c),)
which would otherwise result in either a syntax error or the wrong result.
Fixes issue #9635.
This work was funded through GitHub Sponsors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This commit is contained in:
committed by
Damien George
parent
5c4153ea37
commit
fb8792c095
@@ -56,3 +56,8 @@ try:
|
||||
except (ValueError, SyntaxError):
|
||||
# MicroPython incorrectly raises ValueError here.
|
||||
print('SyntaxError')
|
||||
|
||||
# Allow literal tuples
|
||||
print(f"a {1,} b")
|
||||
print(f"a {x,y,} b")
|
||||
print(f"a {x,1} b")
|
||||
|
||||
Reference in New Issue
Block a user