Skip to content

Commit 19cab84

Browse files
committed
more fixes
1 parent 6cb2351 commit 19cab84

File tree

5 files changed

+15
-4
lines changed

5 files changed

+15
-4
lines changed

mypy/checker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4503,7 +4503,7 @@ def check_member_assignment(
45034503
rvalue_type = self.check_simple_assignment(attribute_type, rvalue, context)
45044504
return rvalue_type, attribute_type, True
45054505

4506-
with self.msg.filter_errors():
4506+
with self.msg.filter_errors(filter_deprecated=True):
45074507
get_lvalue_type = self.expr_checker.analyze_ordinary_member_access(
45084508
lvalue, is_lvalue=False
45094509
)

mypy/checkmember.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,10 @@ def analyze_descriptor_access(
658658
if isinstance(descriptor_type, UnionType):
659659
# Map the access over union types
660660
return make_simplified_union(
661-
[analyze_descriptor_access(typ, mx) for typ in descriptor_type.items]
661+
[
662+
analyze_descriptor_access(typ, mx, assignment=assignment)
663+
for typ in descriptor_type.items
664+
]
662665
)
663666
elif not isinstance(descriptor_type, Instance):
664667
return orig_descriptor_type

mypy/errors.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,10 +172,12 @@ def __init__(
172172
*,
173173
filter_errors: bool | Callable[[str, ErrorInfo], bool] = False,
174174
save_filtered_errors: bool = False,
175+
filter_deprecated: bool = False,
175176
) -> None:
176177
self.errors = errors
177178
self._has_new_errors = False
178179
self._filter = filter_errors
180+
self._filter_deprecated = filter_deprecated
179181
self._filtered: list[ErrorInfo] | None = [] if save_filtered_errors else None
180182

181183
def __enter__(self) -> ErrorWatcher:
@@ -196,7 +198,8 @@ def on_error(self, file: str, info: ErrorInfo) -> bool:
196198
ErrorWatcher further down the stack and from being recorded by Errors
197199
"""
198200
if info.code == codes.DEPRECATED:
199-
return False
201+
# Deprecated is not a type error, so it is handled on opt-in basis here.
202+
return self._filter_deprecated
200203

201204
self._has_new_errors = True
202205
if isinstance(self._filter, bool):

mypy/messages.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,13 @@ def filter_errors(
187187
*,
188188
filter_errors: bool | Callable[[str, ErrorInfo], bool] = True,
189189
save_filtered_errors: bool = False,
190+
filter_deprecated: bool = False,
190191
) -> ErrorWatcher:
191192
return ErrorWatcher(
192-
self.errors, filter_errors=filter_errors, save_filtered_errors=save_filtered_errors
193+
self.errors,
194+
filter_errors=filter_errors,
195+
save_filtered_errors=save_filtered_errors,
196+
filter_deprecated=filter_deprecated,
193197
)
194198

195199
def add_errors(self, errors: list[ErrorInfo]) -> None:

mypy/server/astmerge.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ def visit_enum_call_expr(self, node: EnumCallExpr) -> None:
330330
def visit_var(self, node: Var) -> None:
331331
node.info = self.fixup(node.info)
332332
self.fixup_type(node.type)
333+
self.fixup_type(node.setter_type)
333334
super().visit_var(node)
334335

335336
def visit_type_alias(self, node: TypeAlias) -> None:

0 commit comments

Comments
 (0)