python / python/mypy

[mypyc] Assertion on untyped property

Aperta
#12,120 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

crash topic-descriptors topic-mypyc
Lingua principale
Python
Stelle
20.6k
Fork
3.3k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

Bug Report

If you try and compile code with mypyc that has an untyped return, you'll hit an AssertionError

To Reproduce

Run mypyc on:

class Math:
    @property
    def learn(self):
        return ""

Expected Behavior

At least a helpful message (a la https://github.com/python/mypy/pull/12119)

Actual Behavior

mypyc schoo.py
Traceback (most recent call last):
  File "mypyc/irbuild/prepare.py", line 72, in build_type_map
  File "mypyc/irbuild/prepare.py", line 192, in prepare_class_def
  File "mypyc/irbuild/prepare.py", line 145, in prepare_method_def
school.py:1: AssertionError:

(That's the full output)

Your Environment

(Doesn't matter 😉 )

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Esegui mypyc sul riproduttore e inizia da mypyc/irbuild/prepare.py, seguendo il traceback attraverso build_type_map, prepare_class_def e prepare_method_def. Sostituisci il percorso AssertionError con una diagnostica utile per un ritorno di proprietà non tipizzato, quindi verifica che il riproduttore riporti tale diagnostica invece di andare in crash.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
compilers
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.