mypy crashes on a dataclass
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
Hướng nghiên cứu
Tái hiện lỗi crash bằng ví dụ dataclass, sau đó kiểm tra mypy/semanal_main.py tại apply_class_plugin_hooks và phần xử lý liên quan trong mypy/build.py. Theo dõi lý do giới hạn số lượt chạy của hook plugin lớp bị chạm tới; công việc được xem là hoàn tất khi đầu vào này không còn gây crash mà thay vào đó tạo ra chẩn đoán có ý nghĩa hoặc hoàn tất thành công.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Crash Report
Traceback
Traceback (most recent call last):
File "/home/dnpetrov/Work/memory_tests/venv/bin/mypy", line 8, in <module>
sys.exit(console_entry())
^^^^^^^^^^^^^^^
File "/home/dnpetrov/Work/memory_tests/venv/lib/python3.12/site-packages/mypy/__main__.py", line 15, in console_entry
main()
File "mypy/main.py", line 103, in main
File "mypy/main.py", line 187, in run_build
File "mypy/build.py", line 193, in build
File "mypy/build.py", line 268, in _build
File "mypy/build.py", line 2950, in dispatch
File "mypy/build.py", line 3348, in process_graph
File "mypy/build.py", line 3443, in process_stale_scc
File "mypy/semanal_main.py", line 99, in semantic_analysis_for_scc
File "mypy/semanal_main.py", line 432, in apply_class_plugin_hooks
AssertionError: Internal error: too many class plugin hook passes
To Reproduce
Following code crashes mypy:
from dataclasses import dataclass
def fn(a: int) -> int:
return a
@dataclass
class Test:
foo = fn
foo: int = 42
While the code itself, indeed, looks very strange, mypy should not crash, or at least should provide some meaningful diagnostic instead of "Internal error: too many class plugin hook passes".
Your Environment
$ mypy --version
mypy 1.11.2 (compiled: yes)
$ python --version
Python 3.12.3
Also reproduces on the latest and greatest master branch (30b2a2d99a05c5176eff449b80abb61eae5f2043).
- Ngôn ngữ chính
- Python
- Star
- 20.6k
- Fork
- 3.3k
- Merge trung bình
- 1 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 54
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của python/mypy
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
bug topic-configuration topic-error-reporting
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
OpenHands/extensions#626 · 1 bình luận ·
-
Change observation tooltip text Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
CSCfi/sd-search-api#39 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
please add to porn list Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
StevenBlack/hosts#3255 ·