Can't convert from Tuple of optional to Tuple of non-optional
Aperta
Nessuno ha ancora preso questa issue.
false-positive
feature
priority-2-low
- Lingua principale
- Python
- Stelle
- 20.6k
- Fork
- 3.3k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
Code:
from typing import Tuple, Optional
a: Tuple[Optional[int], Optional[int]] = (1, 1)
b: Tuple[int, int]
if a[0] is not None and a[1] is not None:
b = a
After that has error:
script.py:6: error: Incompatible types in assignment (expression has type "Tuple[Optional[int], Optional[int]]", variable has type "Tuple[int, int]")
Expected no error.
I have: mypy-0.770 and Python 3.7.7
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci l'errore segnalato da script.py usando mypy con le annotazioni Tuple e Optional mostrate. Analizza come mypy restringe gli elementi della tupla dopo i due controlli None e considera completato il lavoro quando l'assegnazione a b viene accettata senza un errore incompatible-types.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100