MCPcopy
hub / github.com/python/mypy / visit_func_def

Method visit_func_def

mypy/server/deps.py:256–278  ·  view source on GitHub ↗
(self, o: FuncDef)

Source from the content-addressed store, hash-verified

254 super().visit_mypy_file(o)
255
256 def visit_func_def(self, o: FuncDef) -> None:
257 with self.scope.function_scope(o):
258 target = self.scope.current_target()
259 if o.type:
260 if self.is_class and isinstance(o.type, FunctionLike):
261 signature: Type = bind_self(o.type)
262 else:
263 signature = o.type
264 for trigger in self.get_type_triggers(signature):
265 self.add_dependency(trigger)
266 self.add_dependency(trigger, target=make_trigger(target))
267 if o.info:
268 for base in non_trivial_bases(o.info):
269 # Base class __init__/__new__ doesn't generate a logical
270 # dependency since the override can be incompatible.
271 if not self.use_logical_deps() or o.name not in ("__init__", "__new__"):
272 self.add_dependency(make_trigger(base.fullname + "." + o.name))
273 self.add_type_alias_deps(self.scope.current_target())
274 super().visit_func_def(o)
275 variants = set(o.expanded) - {o}
276 for ex in variants:
277 if isinstance(ex, FuncDef):
278 super().visit_func_def(ex)
279
280 def visit_decorator(self, o: Decorator) -> None:
281 if not self.use_logical_deps():

Callers

nothing calls this directly

Calls 11

get_type_triggersMethod · 0.95
add_dependencyMethod · 0.95
use_logical_depsMethod · 0.95
add_type_alias_depsMethod · 0.95
bind_selfFunction · 0.90
make_triggerFunction · 0.90
isinstanceFunction · 0.85
non_trivial_basesFunction · 0.85
setClass · 0.85
function_scopeMethod · 0.80
current_targetMethod · 0.45

Tested by

no test coverage detected