mypy doesn't get error with typed `dict(*{'A': 10})` while PVM gets error
Nobody has claimed this yet.
- 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 typed and untyped dict(*{'A': 10}) as shown below:
v1 = dict(*{'A': 10}) # Error
v2: dict[str, int] = dict(*{'A': 10}) # Error
ValueError: dictionary update sequence element #0 has length 1; 2 is required
But, mypy gets the error only for untyped dict(*{'A': 10}) while typed dict(*{'A': 10}) doesn't get error as shown below:
v1 = dict(*{'A': 10}) # Error
v2: dict[str, int] = dict(*{'A': 10}) # No error
error: Need type annotation for "v1" (hint: "v1: dict[, ] = ...")
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
Start by reproducing the examples in test.py with Python 3.14.0 and mypy 1.19.1, comparing the typed and untyped dict(*{'A': 10}) cases. Trace the type-checking path for the annotated assignment and add a regression test that captures the expected diagnostic for the runtime-invalid call.
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
- Clearly specified
- Newbie friendliness
- 35/100