Skip to content

Commit 04f457c

Browse files
committed
style: use @overload to get rid of mypy only assertions
1 parent 15c33fb commit 04f457c

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

src/_pytest/mark/expression.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@
2525
import re
2626
import types
2727
from typing import Iterator
28+
from typing import Literal
2829
from typing import Mapping
2930
from typing import NoReturn
31+
from typing import overload
3032
from typing import Protocol
3133
from typing import Sequence
3234

@@ -132,6 +134,14 @@ def lex(self, input: str) -> Iterator[Token]:
132134
)
133135
yield Token(TokenType.EOF, "", pos)
134136

137+
@overload
138+
def accept(self, type: TokenType, *, reject: Literal[True]) -> Token: ...
139+
140+
@overload
141+
def accept(
142+
self, type: TokenType, *, reject: Literal[False] = False
143+
) -> Token | None: ...
144+
135145
def accept(self, type: TokenType, *, reject: bool = False) -> Token | None:
136146
if self.current.type is type:
137147
token = self.current
@@ -208,7 +218,6 @@ def not_expr(s: Scanner) -> ast.expr:
208218

209219
def single_kwarg(s: Scanner) -> ast.keyword:
210220
keyword_name = s.accept(TokenType.IDENT, reject=True)
211-
assert keyword_name is not None # for mypy
212221
if not keyword_name.value.isidentifier() or keyword.iskeyword(keyword_name.value):
213222
raise ParseError(
214223
keyword_name.pos + 1,
@@ -220,7 +229,6 @@ def single_kwarg(s: Scanner) -> ast.keyword:
220229
value: str | int | bool | None = value_token.value[1:-1] # strip quotes
221230
else:
222231
value_token = s.accept(TokenType.IDENT, reject=True)
223-
assert value_token is not None # for mypy
224232
if (
225233
(number := value_token.value).isdigit()
226234
or number.startswith("-")

0 commit comments

Comments
 (0)