python / python/mypy

Get rid of make_simplified_union() except in error messages

Offen
#8,624 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug performance priority-1-normal refactoring topic-union-types
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

It used to cause various issues and is still causing known bugs (like false negatives in per-file strict optional when map_instance_to_supertype() is involved). Ideally we should replace all calls to it (except in error message formatting code) with UnionType.make_union(). Union constructor already flattens nested unions, we can also make it remove exact duplicates minimize perf impact.

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 mypy-Repository nach Aufrufen von make_simplified_union() zu durchsuchen, und trenne die Formatierung von Fehlermeldungen von der Typkonstruktion. Lies UnionType.make_union() und das bestehende Verhalten des Union-Konstruktors und überprüfe anschließend, dass nicht formatierungsbezogene Aufrufe den Ersatz verwenden, und führe die relevante Testsuite aus.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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