Skip to content

Crash when assigning a field to a Final variable in a dataclass #13772

@tmke8

Description

@tmke8

Traceback

Traceback (most recent call last):
  File "env/bin/mypy", line 8, in <module>
    sys.exit(console_entry())
  File "env/lib/python3.10/site-packages/mypy/__main__.py", line 15, in console_entry
    main()
  File "mypy/main.py", line 95, in main
  File "mypy/main.py", line 174, in run_build
  File "mypy/build.py", line 187, in build
  File "mypy/build.py", line 270, in _build
  File "mypy/build.py", line 2867, in dispatch
  File "mypy/build.py", line 3251, in process_graph
  File "mypy/build.py", line 3346, in process_stale_scc
  File "mypy/semanal_main.py", line 90, in semantic_analysis_for_scc
  File "mypy/semanal_main.py", line 420, in apply_class_plugin_hooks
AssertionError: Internal error: too many class plugin hook passes

To Reproduce

from dataclasses import dataclass, field
from typing import Final

@dataclass
class A:
    CONST: Final = field(default=10)

Your Environment

  • Mypy version used: mypy 0.981 (compiled: yes)
  • Mypy command-line flags: none
  • Mypy configuration options from mypy.ini (and other config files): none
  • Python version used: 3.10.6
  • Operating system and version: Ubuntu 22.04

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions