@@ -1933,6 +1933,18 @@ class D(C): # E: Cannot extend enum with existing members: "C" \
19331933 x: int # E: Cannot assign to final name "x"
19341934[builtins fixtures/bool.pyi]
19351935
1936+ [case testEnumNotFinalWithMethodsAndUninitializedValuesStubMember]
1937+ # flags: --python-version 3.11
1938+ # This was added in 3.11
1939+ import lib
1940+
1941+ [file lib.pyi]
1942+ from enum import Enum, member
1943+ class A(Enum):
1944+ @member
1945+ def x(self) -> None: ...
1946+ [builtins fixtures/bool.pyi]
1947+
19361948[case testEnumLiteralValues]
19371949from enum import Enum
19381950
@@ -2325,6 +2337,28 @@ def some_a(a: A):
23252337[builtins fixtures/dict.pyi]
23262338
23272339
2340+ [case testEnumMemberAndNonMemberSupport]
2341+ # flags: --python-version 3.11 --warn-unreachable
2342+ # This was added in 3.11
2343+ from enum import Enum, member, nonmember
2344+
2345+ class A(Enum):
2346+ x = 1
2347+ y = member(2)
2348+ z = nonmember(3)
2349+
2350+ def some_a(a: A):
2351+ if a is not A.x and a is not A.z:
2352+ reveal_type(a) # N: Revealed type is "Literal[__main__.A.y]"
2353+ if a is not A.y and a is not A.z:
2354+ reveal_type(a) # N: Revealed type is "Literal[__main__.A.x]"
2355+ if a is not A.x:
2356+ reveal_type(a) # N: Revealed type is "Literal[__main__.A.y]"
2357+ if a is not A.y:
2358+ reveal_type(a) # N: Revealed type is "Literal[__main__.A.x]"
2359+ [builtins fixtures/dict.pyi]
2360+
2361+
23282362[case testErrorOnAnnotatedMember]
23292363from enum import Enum
23302364
0 commit comments