Skip to content

mypy types set of StrEnum as set of str #18380

Closed
@injust

Description

@injust

Bug Report

mypy types a set of StrEnum as set[str].

To Reproduce

from enum import Enum, StrEnum

class Tag(Enum):
    pass

class StrTag(StrEnum):
    pass

reveal_type(set(Tag))  # note: Revealed type is "builtins.set[__main__.Tag]"
reveal_type(set(StrTag))  # note: Revealed type is "builtins.set[builtins.str]"

https://mypy-play.net/?mypy=latest&python=3.13&gist=237de7c0610830acd5a5104d18541e3e

Expected Behavior

mypy should type set(StrTag) as set[StrTag], not set[str].

Actual Behavior

main.py:10: note: Revealed type is "builtins.set[builtins.str]"

Your Environment

  • Mypy version used: 1.14.0
  • Python version used: 3.13

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions