Various class based NamedTuple and TypedDict errors not caught
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
This example has a bunch of errors that the semantic analyzer should probably report (and one what seems like a false positive):
from typing import NamedTuple, TypeVar, Generic
from typing_extensions import Protocol
from mypy_extensions import TypedDict
@xyz # No error
class N1(NamedTuple):
x: int
@xyz # No error
class T1(TypedDict):
x: int
class N2(NamedTuple, Protocol): # No error
x: int
class T2(TypedDict, Protocol): # No error
x: int
class M(type):
def f(cls) -> None: pass
class N3(NamedTuple, metaclass=M): # No error
x: int
N3.f() # Error
class T3(TypedDict, metaclass=M): # No error
x: int
T = TypeVar('T')
class N4(NamedTuple, Generic[T]): # No error
x: int
class T4(TypedDict, Generic[T]): # No error
x: int
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
Commencez par reproduire l’exemple Python et suivre le traitement par l’analyseur sémantique des définitions de NamedTuple et TypedDict basées sur des classes. Comparez les diagnostics pour les décorateurs, les bases Protocol et de métaclasse, ainsi que les combinaisons de Generic, avec les attentes de l’issue, y compris le faux positif signalé. Le travail est terminé lorsque les erreurs manquantes sont signalées et que le faux positif est corrigé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- compilers, devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100