def _check_attributes_shadowing(self, node: ast.ClassDef) -> None: class_attributes, instance_attributes = self._get_attributes(node) class_attribute_names = self._flat_assign_names(class_attributes) for instance_attr in instance_attributes: if instance_attr.attr in class_attribute_names: self.add_violation( oop.ShadowedClassAttributeViolation( instance_attr, text=instance_attr.attr, ), )
def _check_attributes_shadowing(self, node: ast.ClassDef) -> None: class_attributes, instance_attributes = self._get_attributes(node) class_attribute_names = set( name_nodes.flat_variable_names(class_attributes), ) # TODO: support NamedExpr for instance_attr in instance_attributes: if instance_attr.attr in class_attribute_names: self.add_violation( oop.ShadowedClassAttributeViolation( instance_attr, text=instance_attr.attr, ), )
def _check_attributes_shadowing(self, node: ast.ClassDef) -> None: class_attributes, instance_attributes = classes.get_attributes( node, include_annotated=False, ) class_attribute_names = set( name_nodes.flat_variable_names(class_attributes), ) for instance_attr in instance_attributes: if instance_attr.attr in class_attribute_names: self.add_violation( oop.ShadowedClassAttributeViolation( instance_attr, text=instance_attr.attr, ), )