File tree Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ [case testMatchLiteralPatternEnumWithNonMember-xfail]
2+ from enum import Enum, nonmember
3+ from typing import NoReturn
4+ def assert_never(x: NoReturn) -> None: ...
5+
6+ class int:
7+ def __new__(cls, value: int): pass
8+
9+ class Medal(int, Enum):
10+ prize: str = nonmember("nothing")
11+
12+ def __new__(cls, value: int, prize: str | None) -> Medal:
13+ enum = int.__new__(cls, value)
14+ enum._value_ = value
15+ if prize is not None:
16+ enum.prize = prize
17+ return enum
18+
19+ gold = (1, 'cash prize')
20+ silver = (2, 'sponsorship')
21+ bronze = (3, 'nothing')
22+
23+ m: Medal
24+
25+ match m:
26+ case Medal.gold:
27+ reveal_type(m) # N: Revealed type is "Literal[__main__.Medal.gold]"
28+ case Medal.silver:
29+ reveal_type(m) # N: Revealed type is "Literal[__main__.Medal.silver]"
30+ case Medal.bronze:
31+ reveal_type(m) # N: Revealed type is "Literal[__main__.Medal.bronze]"
32+ case _ as unreachable:
33+ assert_never(unreachable)
34+
35+ [builtins fixtures/tuple.pyi]
36+
137[case testTryStarSimple]
238try:
339 pass
Original file line number Diff line number Diff line change @@ -48,3 +48,6 @@ class auto(IntFlag):
4848# It is python-3.11+ only:
4949class StrEnum (str , Enum ):
5050 def __new__ (cls : Type [_T ], value : str | _T ) -> _T : ...
51+
52+
53+ def nonmember (value : _T ) -> _T : pass
You can’t perform that action at this time.
0 commit comments