Skip to content

Commit 2cb9117

Browse files
committed
Minor cleanup
1 parent 19cab84 commit 2cb9117

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

mypy/checker.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2050,6 +2050,12 @@ def check_method_or_accessor_override_for_base(
20502050
def check_setter_type_override(
20512051
self, defn: OverloadedFuncDef, base_attr: SymbolTableNode, base: TypeInfo
20522052
) -> None:
2053+
"""Check override of a setter type of a mutable attribute.
2054+
2055+
Currently, this should be only called when either base node or the current node
2056+
is a custom settable property (i.e. where setter type is different from getter type).
2057+
Note that this check is contravariant.
2058+
"""
20532059
base_node = base_attr.node
20542060
assert isinstance(base_node, (OverloadedFuncDef, Var))
20552061
original_type = get_raw_setter_type(base_node)
@@ -2154,6 +2160,7 @@ def check_method_override_for_base_with_name(
21542160
original_type = self.bind_and_map_method(base_attr, original_type, defn.info, base)
21552161
if original_node and is_property(original_node):
21562162
original_type = get_property_type(original_type)
2163+
21572164
if isinstance(original_node, Var):
21582165
expanded_type = map_type_from_supertype(original_type, defn.info, base)
21592166
expanded_type = expand_self_type(
@@ -3557,6 +3564,7 @@ def lvalue_type_from_base(
35573564
base_type = get_proper_type(base_type.arg_types[0])
35583565
else:
35593566
base_type = base_type.items[0].ret_type
3567+
35603568
return base_type, base_node
35613569

35623570
def check_compatibility_classvar_super(
@@ -5224,10 +5232,6 @@ def visit_decorator_inner(self, e: Decorator, allow_empty: bool = False) -> None
52245232
if not allow_empty:
52255233
self.fail(message_registry.MULTIPLE_OVERLOADS_REQUIRED, e)
52265234
continue
5227-
if refers_to_fullname(d, "abc.abstractmethod"):
5228-
# Normally these would be removed, except for abstract settable properties,
5229-
# where it is non-trivial to remove.
5230-
continue
52315235
dec = self.expr_checker.accept(d)
52325236
temp = self.temp_node(sig, context=d)
52335237
fullname = None
@@ -8800,6 +8804,7 @@ def get_raw_setter_type(defn: OverloadedFuncDef | Var) -> ProperType:
88008804
first_item = defn.items[0]
88018805
assert isinstance(first_item, Decorator)
88028806
var = first_item.var
8807+
# TODO: handle synthetic properties here and elsewhere.
88038808
assert var.setter_type is not None
88048809
return var.setter_type
88058810

0 commit comments

Comments
 (0)