Skip to content

Commit d4cb90f

Browse files
Update specialize.py
1 parent 38e3771 commit d4cb90f

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

mypyc/irbuild/specialize.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,10 @@ def translate_fstring(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Va
747747
):
748748
items = expr.args[0].items
749749
for i, item in enumerate(items):
750-
if isinstance(item, StrExpr) or isinstance(constant_fold_expr(builder, item), str):
750+
if isinstance(item, StrExpr):
751+
continue
752+
elif isinstance(folded := constant_fold_expr(builder, item), str):
753+
items[i] = StrExpr(folded)
751754
continue
752755
elif isinstance(item, CallExpr):
753756
if not (
@@ -775,15 +778,10 @@ def translate_fstring(builder: IRBuilder, expr: CallExpr, callee: RefExpr) -> Va
775778
elif isinstance(item, CallExpr):
776779
format_ops.append(FormatOp.STR)
777780
exprs.append(item.args[0])
778-
else:
779-
format_ops.append(FormatOp.STR)
780-
exprs.append(item)
781781

782782
def get_literal_str(expr: Expression) -> str | None:
783783
if isinstance(expr, StrExpr):
784784
return expr.value
785-
elif isinstance(folded := constant_fold_expr(builder, expr), str):
786-
return folded
787785
return None
788786

789787
for i in range(len(exprs) - 1):

0 commit comments

Comments
 (0)