Path 1: 29 calls (0.64)

AssignAttr (29)

ClassDef (29)

1def handle(self, node: nodes.AssignAttr, parent: nodes.ClassDef) -> None:
2        if isinstance(node.parent, (nodes.AnnAssign, nodes.Assign)) and isinstance(
3            node.parent.value, astroid.node_classes.Name
4        ):
5            current = set(parent.aggregations_type[node.attrname])
6            parent.aggregations_type[node.attrname] = list(
7                current | utils.infer_node(node)
8            )
9        else:
10            super().handle(node, parent)
            

Path 2: 14 calls (0.31)

AssignAttr (14)

ClassDef (14)

1def handle(self, node: nodes.AssignAttr, parent: nodes.ClassDef) -> None:
2        if isinstance(node.parent, (nodes.AnnAssign, nodes.Assign)) and isinstance(
3            node.parent.value, astroid.node_classes.Name
4        ):
5            current = set(parent.aggregations_type[node.attrname])
6            parent.aggregations_type[node.attrname] = list(
7                current | utils.infer_node(node)
8            )
9        else:
10            super().handle(node, parent)
            

Path 3: 2 calls (0.04)

AssignAttr (2)

ClassDef (2)

1def handle(self, node: nodes.AssignAttr, parent: nodes.ClassDef) -> None:
2        if isinstance(node.parent, (nodes.AnnAssign, nodes.Assign)) and isinstance(
3            node.parent.value, astroid.node_classes.Name
4        ):
5            current = set(parent.aggregations_type[node.attrname])
6            parent.aggregations_type[node.attrname] = list(
7                current | utils.infer_node(node)
8            )
9        else:
10            super().handle(node, parent)