summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/lexer.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/py/lexer.c b/py/lexer.c
index bff8e63765..2774759a15 100644
--- a/py/lexer.c
+++ b/py/lexer.c
@@ -336,8 +336,12 @@ static void parse_string_literal(mp_lexer_t *lex, bool is_raw, bool is_fstring)
// assume there's going to be interpolation, so prep the injection data
// fstring_args_idx==0 && len(fstring_args)>0 means we're extracting the args.
// only when fstring_args_idx>0 will we consume the arg data
- // note: lex->fstring_args will be empty already (it's reset when finished)
- vstr_add_str(&lex->fstring_args, ".format(");
+ // lex->fstring_args is reset when finished, so at this point there are two cases:
+ // - lex->fstring_args is empty: start of a new f-string
+ // - lex->fstring_args is non-empty: concatenation of adjacent f-strings
+ if (vstr_len(&lex->fstring_args) == 0) {
+ vstr_add_str(&lex->fstring_args, ".format(");
+ }
}
#endif