mypy doesn't get error with `dict(**{10: 20})` while PVM gets error
Open
Nobody has claimed this yet.
bug
topic-runtime-semantics
topic-type-context
- Dominant language
- Python
- Stars
- 20.6k
- Forks
- 3.3k
- PR merge metrics
- PR metrics pending
Description
*Memo:
- python test.py
- mypy test.py
- Python 3.14.0
- mypy 1.19.1
PVM gets the error with dict(**{10: 20}) but mypy doesn't get error as shown below:
# python # mypy
v = dict(**{10: 20}) # Error # No error
TypeError: keywords must be strings
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the discrepancy with test.py using Python 3.14.0 and mypy 1.19.1, comparing python test.py with mypy test.py. Start by tracing mypy's handling of ** arguments in dict(); done means mypy reports the invalid non-string keyword key shown by the runtime error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100