Confusing error message for property with @overloaded function
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
The following does not seem to work:
from typing import overload
class Example:
@overload
def fun(self, p: int) -> int: ...
@overload
def fun(self, p: str) -> str: ...
def fun(self, p=1):
if isinstance(p, int):
return 'foo'
else:
return 'bar'
prop = property(fun)
Argument 1 to "property" has incompatible type overloaded function; expected "Optional[Callable[[Any], Any]]"
Is this a bug or expected?
Also, fun(0) returns a string instead of an int as specified in the stub, but mypy doesn't seem to catch this. Again, bug or expected?
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 damit, das bereitgestellte Python-Beispiel zu reproduzieren und die Diagnosen für das Übergeben einer überladenen Methode an property sowie für die Überprüfung des Rückgabetyps ihrer Implementierung nachzuverfolgen. Erledigt ist die Aufgabe, wenn das erwartete Verhalten festgestellt und die daraus resultierenden Diagnosen oder das Prüfverhalten durch einen Regressionstest abgedeckt sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools, tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100