False positive passing default valued arguments to lambda
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug Report
Using default valued arguments is a common trick to ensure that a lambda references the current loop value (https://stackoverflow.com/a/25314665/145289)
def f() -> None:
for i in range(0, 10):
print(list(filter(lambda m, x=i: m == x, [4, 3])))
Expected Behavior
Mypy should not report any error
Actual Behavior
But mypy reports a false positive
kk.py:3: error: Argument 1 to "filter" has incompatible type "Callable[[Any, Any], Any]"; expected "Callable[[int], TypeGuard[Any]]" [arg-type]
Your Environment
- Mypy version used: 1.1.1
- Mypy command-line flags:
- Mypy configuration options from
mypy.ini(and other config files): - Python version used: 3.11.0
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez l’exemple fourni de lambda et filter avec mypy 1.1.1 et Python 3.11. Suivez comment callable est inféré lorsqu’un paramètre de lambda a une valeur par défaut, puis ajoutez une couverture de régression pour ce cas. C’est terminé lorsque mypy accepte l’exemple sans l’erreur arg-type signalée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100