Skip to content

Dict unpacking type checks don't consider **kwargs #17642

Closed
@dinatamas

Description

@dinatamas

Bug Report:

In the below example (playground gist), mypy behaves differently with respect to **kwargs:

def func(x: bool = False, **kwargs):
    print(x, kwargs)

# This is accepted by mypy.
func(y="y")

# This is flagged by mypy.
data = {"y": "y"}
func(**data)

The error is Argument 1 to "func" has incompatible type "**dict[str, str]"; expected "bool" [arg-type]. This is incorrect because the function has **kwargs, so the dict / function call should be considered type correct.

Your Environment:

  • Mypy version used: latest (1.11.1)
  • Mypy command-line flags: -
  • Mypy configuration options from mypy.ini (and other config files): -
  • Python version used: 3.12

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugmypy got something wrongtopic-type-contextType context / bidirectional inference

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions