(self, defn: OverloadedFuncDef)
| 1547 | defn.is_final = True |
| 1548 | |
| 1549 | def process_static_or_class_method_in_overload(self, defn: OverloadedFuncDef) -> None: |
| 1550 | class_status = [] |
| 1551 | static_status = [] |
| 1552 | for item in defn.items: |
| 1553 | if isinstance(item, Decorator): |
| 1554 | inner = item.func |
| 1555 | elif isinstance(item, FuncDef): |
| 1556 | inner = item |
| 1557 | else: |
| 1558 | assert False, f"The 'item' variable is an unexpected type: {type(item)}" |
| 1559 | class_status.append(inner.is_class) |
| 1560 | static_status.append(inner.is_static) |
| 1561 | |
| 1562 | if defn.impl is not None: |
| 1563 | if isinstance(defn.impl, Decorator): |
| 1564 | inner = defn.impl.func |
| 1565 | elif isinstance(defn.impl, FuncDef): |
| 1566 | inner = defn.impl |
| 1567 | else: |
| 1568 | assert False, f"Unexpected impl type: {type(defn.impl)}" |
| 1569 | class_status.append(inner.is_class) |
| 1570 | static_status.append(inner.is_static) |
| 1571 | |
| 1572 | if len(set(class_status)) != 1: |
| 1573 | self.msg.overload_inconsistently_applies_decorator("classmethod", defn) |
| 1574 | elif len(set(static_status)) != 1: |
| 1575 | self.msg.overload_inconsistently_applies_decorator("staticmethod", defn) |
| 1576 | else: |
| 1577 | defn.is_class = class_status[0] |
| 1578 | defn.is_static = static_status[0] |
| 1579 | |
| 1580 | def analyze_property_with_multi_part_definition( |
| 1581 | self, defn: OverloadedFuncDef |
no test coverage detected