Method: pylint.pyreverse.inspector.Linker.visit_assignname
Calls: 2898, Exceptions: 0, Paths: 2Back
Path 1: 2596 calls (0.9)
AssignName (2596)
None (2596)
1def visit_assignname(self, node: nodes.AssignName) -> None:
2 """Visit an astroid.AssignName node.
3
4 handle locals_type
5 """
6 # avoid double parsing done by different Linkers.visit
7 # running over the same project:
8 if hasattr(node, "_handled"):
9 return
10 node._handled = True
11 if node.name in node.frame(future=True):
12 frame = node.frame(future=True)
13 else:
14 # the name has been defined as 'global' in the frame and belongs
15 # there.
16 frame = node.root()
17 if not hasattr(frame, "locals_type"):
18 # If the frame doesn't have a locals_type yet,
19 # it means it wasn't yet visited. Visit it now
20 # to add what's missing from it.
21 if isinstance(frame, nodes.ClassDef):
22 self.visit_classdef(frame)
23 elif isinstance(frame, nodes.FunctionDef):
24 self.visit_functiondef(frame)
25 else:
26 self.visit_module(frame)
27
28 current = frame.locals_type[node.name]
29 frame.locals_type[node.name] = list(set(current) | utils.infer_node(node))
Path 2: 302 calls (0.1)
AssignName (302)
1def visit_assignname(self, node: nodes.AssignName) -> None:
2 """Visit an astroid.AssignName node.
3
4 handle locals_type
5 """
6 # avoid double parsing done by different Linkers.visit
7 # running over the same project:
8 if hasattr(node, "_handled"):
9 return
10 node._handled = True
11 if node.name in node.frame(future=True):
12 frame = node.frame(future=True)
13 else:
14 # the name has been defined as 'global' in the frame and belongs
15 # there.
16 frame = node.root()
17 if not hasattr(frame, "locals_type"):
18 # If the frame doesn't have a locals_type yet,
19 # it means it wasn't yet visited. Visit it now
20 # to add what's missing from it.
21 if isinstance(frame, nodes.ClassDef):
22 self.visit_classdef(frame)
23 elif isinstance(frame, nodes.FunctionDef):
24 self.visit_functiondef(frame)
25 else:
26 self.visit_module(frame)
27
28 current = frame.locals_type[node.name]
29 frame.locals_type[node.name] = list(set(current) | utils.infer_node(node))