mypy crashes on a dataclass
还没有人认领这个 Issue。
评估
调研方向
使用 dataclass 示例重现崩溃,然后检查 mypy/semanal_main.py 中的 apply_class_plugin_hooks 以及 mypy/build.py 中相关的处理过程。跟踪类插件钩子的传递次数上限为何会被达到;当此输入不再崩溃,而是生成有意义的诊断或成功完成时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
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).
- 主要语言
- Python
- 星标
- 20.6k
- 派生
- 3.3k
- 平均合并
- 1 天 18 小时
- 30 天内合并 PR
- 54
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
python/mypy 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 75/100
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
-
bug
难度 2/5 1-3 小时 新手友好度 76/100
-
documentation
难度 2/5 1-3 小时 新手友好度 72/100
-
bug topic-configuration topic-error-reporting
难度 2/5 1-3 小时 新手友好度 68/100
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 86/100
zostera/django-bootstrap4#894 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
use-agent-os/agent-os#3276 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
zephyrproject-rtos/zephyr#119726 ·
-
area/auth bug comp/agent P3 platform/discord type/security
难度 2/5 1-3 小时 新手友好度 88/100
NousResearch/hermes-agent#117848 ·
-
难度 2/5 1-3 小时 新手友好度 82/100
zilliztech/memsearch#759 ·