Skip to content

Commit ba9380d

Browse files
Fix: ensure unpacked **kwargs have string-compatible keys (#20706)
1 parent 5f3e6ec commit ba9380d

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

mypy/checkexpr.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5432,6 +5432,13 @@ def visit_dict_expr(self, e: DictExpr) -> Type:
54325432
expected_types: list[Type] = []
54335433
for key, value in e.items:
54345434
if key is None:
5435+
# This is a **expr unpacking. Check that the expression has string keys.
5436+
value_type = get_proper_type(self.accept(value))
5437+
if not self.is_valid_keyword_var_arg(value_type):
5438+
is_mapping = is_subtype(
5439+
value_type, self.chk.named_type("_typeshed.SupportsKeysAndGetItem")
5440+
)
5441+
self.msg.invalid_keyword_var_arg(value_type, is_mapping, value)
54355442
args.append(value)
54365443
expected_types.append(
54375444
self.chk.named_generic_type("_typeshed.SupportsKeysAndGetItem", [kt, vt])

0 commit comments

Comments
 (0)