python / python/mypy

Function declared to return list[int] actually returning list[Any]

Offen
#17,076 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug Report

(A clear and concise description of what the bug is.)

To Reproduce

from typing import Any


def foo() -> list[int]:
    x: list[Any] = ["xxx"]
    return x

https://mypy-play.net/?mypy=latest&python=3.12&flags=strict%2Cdisallow-any-generics%2Cwarn-return-any&gist=35cfbe4d01eed0422eb72869846095c1

Expected Behavior

I would expect an error on line 6 return x. The function is declared to return list[int] but is returning list[Any].

Actual Behavior

No error.

$ mypy --strict --disallow-any-generics --warn-return-any  test.py 
Success: no issues found in 1 source file

Your Environment

  • Mypy version used: 1.9.0
  • Mypy command-line flags: --strict --disallow-any-generics --warn-return-any
  • Mypy configuration options from mypy.ini (and other config files): (none)
  • Python version used: 3.10.12

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das bereitgestellte Python-Beispiel mit mypy 1.9.0 und den aufgeführten Strictness-Flags auszuführen, und verfolge anschließend den Pfad der Rückgabetypprüfung für list[Any] im Vergleich zu list[int]. Als erledigt gilt die Aufgabe, wenn das Beispiel an der return-Anweisung einen Fehler meldet, ohne das damit verbundene Verhalten der Typprüfung zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.