You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
importenumclassColor(enum.Enum):
RED="RED"GREEN="GREEN"BLUE="BLUE"c=Color.RED# error: Incompatible types in assignment (expression has type "str", variable has type "Color") [assignment]c=c.GREEN
Expected Behavior
I expect mypy to understand that c.GREEN is also of type Color.
Actual Behavior
Mypy thinks c.GREEN is of type str.
main.py:11: error: Incompatible types in assignment (expression has type "str", variable has type "Color") [assignment]
Found 1 error in 1 file (checked 1 source file)
Your Environment
Mypy version used: master (post 1.3.0 at time of writing)
Mypy command-line flags: n/a
Mypy configuration options from mypy.ini (and other config files): n/a
This is affecting me as well, but triggering a "Statement is unreachable" error when warn_unreachable = True is in my mypy.ini. Consider the following (using the previous color enum):
import enum
class Color(enum.Enum):
RED = "RED"
GREEN = "GREEN"
BLUE = "BLUE"
def test(c:Color) -> str:
if c == c.RED:
return "it's red"
if c == c.GREEN:
return "it's green"
if c == c.BLUE:
return "it's blue"
return "unknown color"
MyPy 1.3.0 doesn't complain about this code, but MyPy 1.4.0 gives "Statement is unreachable" errors for each of the three conditional returns.
Activity
blbelew commentedon Jun 26, 2023
This is affecting me as well, but triggering a "Statement is unreachable" error when
warn_unreachable = Trueis in mymypy.ini. Consider the following (using the previous color enum):MyPy 1.3.0 doesn't complain about this code, but MyPy 1.4.0 gives "Statement is unreachable" errors for each of the three conditional returns.
Support attribute access on enum members correctly (python#19422)