Closed
Description
#10852 made it so that boolean values are correctly identified as Literals in an enum. Other values seem to not be:
from enum import Enum
class Truth(Enum):
true = True
false = False
class MyInt(Enum):
a = 0
b = 1
class MyStr(Enum):
a = "a"
b = "b"
reveal_type(Truth.false.value)
reveal_type(MyInt.a.value)
reveal_type(MyStr.a.value)
Results in:
a.py:15: note: Revealed type is "Literal[False]?"
a.py:16: note: Revealed type is "builtins.int"
a.py:17: note: Revealed type is "builtins.str"
Expected result:
a.py:15: note: Revealed type is "Literal[False]?"
a.py:16: note: Revealed type is "Literal[0]"
a.py:17: note: Revealed type is "Literal['a']"
The enum members themselves (MyInt.a) are correctly identified as final, but their values should be as well