Warning/Error for unassigned expressions/return values
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 20.6k
- Fork
- 3.3k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
Feature
Adding a warning or error if an expression is not assigned would encourage callers to handle return types and pick up on changes to APIs.
Pitch
Imagine you have this api:
def fleeb_the_foo() -> None:
print("fleebing")
def main() -> None:
fleeb_the_foo()
Then you change it later:
def fleeb_the_foo() -> Bool:
print("I failed to fleeb!")
return False
def main() -> None:
fleeb_the_foo() # <<--- a warning or error here!
If you don't want to handle the warning/error:
def fleeb_the_foo() -> Bool:
print("I failed to fleeb!")
return False
def main() -> None:
_ = fleeb_the_foo() # error is suppressed
This is already implemented to some degree with pylint for unassigned expressions with [expression-not-assigned]
str(42) == "42" # [expression-not-assigned]
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
Inizia confrontando il comportamento proposto con il controllo expression-not-assigned di pylint, collegato nell'issue. Chiarisci quali valori restituiti non assegnati dovrebbero produrre diagnostica e come dovrebbe funzionare la soppressione esplicita con _ =. Il lavoro è completato quando il comportamento e le regole diagnostiche sono definiti abbastanza da poter essere implementati e testati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100