summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/objstr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/py/objstr.c b/py/objstr.c
index b966a70169..5dfe94ac4f 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -1645,7 +1645,9 @@ STATIC mp_obj_t str_modulo_format(mp_obj_t pattern, size_t n_args, const mp_obj_
}
}
- if (arg_i != n_args) {
+ if (dict == MP_OBJ_NULL && arg_i != n_args) {
+ // NOTE: if `dict` exists, then `n_args` is 1 and the dict is always consumed; either
+ // positionally, or as a map of named args, even if none were actually referenced.
mp_raise_TypeError(MP_ERROR_TEXT("format string didn't convert all arguments"));
}