generic super false-posistive error on argument type
Offen
Dieses Issue hat noch niemand übernommen.
bug
false-positive
priority-1-normal
topic-inheritance
topic-type-variables
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
input:
NT = TypeVar('NT', int, float)
NTU = Union['KspVar[NT]', 'AstBase[NT]', 'ProcessNum[NT]', NT]
class AstOperatorUnary(AstBase[NT], ProcessNum[NT]):
arg1: NTU[NT]
string: ClassVar[str]
priority: ClassVar[int]
def __init__(self, arg1: NTU[NT]) -> None:
self.arg1: NTU[NT] = arg1
self.arg1_pure: NT = get_value(arg1)
self.arg1_str: str = get_compiled(arg1)
class AstOperatorDouble(AstOperatorUnary[NT]):
arg2: NTU[NT]
def __init__(self, arg1: NTU[NT], arg2: NTU[NT]) -> None:
super().__init__(arg1)
self.arg2 = arg2
self.arg2_pure: NT = get_value(arg2)
self.arg2_str: str = get_compiled(arg2)
Traceback:
E:\packages\pyksp\pyksp\new_base_types.py:285: error: Argument 1 to "__init__" of "AstOperatorUnary" has incompatible type "Union[KspVar[int], AstBase[int], ProcessNum[int], int]"; expected "Union[KspVar[NT], AstBase[NT], ProcessNum[NT], NT]"
E:\packages\pyksp\pyksp\new_base_types.py:285: error: Argument 1 to "__init__" of "AstOperatorUnary" has incompatible type "Union[KspVar[float], AstBase[float], ProcessNum[float], float]"; expected "Union[KspVar[NT], AstBase[NT], ProcessNum[NT], NT]"
ProcessNum has not got __init__
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit den generischen Klassendefinitionen in pyksp/new_base_types.py ungefähr ab Zeile 285 und reproduziere die gemeldeten mypy-Fehler anhand des bereitgestellten Beispiels mit AstOperatorUnary und AstOperatorDouble. Untersuche, warum der Aufruf von super().init die spezialisierte Union ablehnt; abgeschlossen ist die Untersuchung, wenn für diesen Fall keine falsch-positiven Argumentfehler mehr auftreten.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 30/100