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
Python version used: 3.12
The text was updated successfully, but these errors were encountered:
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.
Bug Report
Accessing an instance of an enum though another instance leads to the wrong type being inferred for the instance.
To Reproduce
See: https://mypy-play.net/?mypy=master&python=3.12&flags=disallow-any-unimported&gist=26f57e606e831442885c45110b8d8650
Expected Behavior
I expect mypy to understand that
c.GREEN
is also of typeColor
.Actual Behavior
Mypy thinks
c.GREEN
is of typestr
.Your Environment
mypy.ini
(and other config files): n/aThe text was updated successfully, but these errors were encountered: