MCPcopy Create free account
hub / github.com/colbymchenry/codegraph / visit_node

Method visit_node

codegraph-kernel/src/go.rs:382–418  ·  view source on GitHub ↗
(&mut self, node: Node<'t>)

Source from the content-addressed store, hash-verified

380 // --- visitNode ------------------------------------------------------------
381
382 fn visit_node(&mut self, node: Node<'t>) {
383 stack_guard!();
384 let kind = node.kind();
385 let mut skip_children = false;
386
387 self.maybe_capture_fn_refs(node);
388
389 if kind == "function_declaration" {
390 self.extract_function(node);
391 skip_children = true;
392 } else if kind == "method_declaration" {
393 self.extract_method(node);
394 skip_children = true;
395 } else if kind == "type_spec" {
396 skip_children = self.extract_type_alias(node);
397 } else if matches!(kind, "var_declaration" | "short_var_declaration" | "const_declaration")
398 && !self.inside_class_like()
399 {
400 self.extract_variable(node);
401 self.scan_fn_ref_subtree(node, 0);
402 skip_children = true;
403 } else if kind == "import_declaration" {
404 self.extract_import(node);
405 } else if kind == "call_expression" {
406 self.extract_call(node);
407 } else if kind == "composite_literal" {
408 self.extract_instantiation(node);
409 }
410
411 if !skip_children {
412 for i in 0..node.named_child_count() {
413 if let Some(c) = node.named_child(i) {
414 self.visit_node(c);
415 }
416 }
417 }
418 }
419
420 fn visit_function_body(&mut self, body: Node<'t>) {
421 stack_guard!();

Callers 2

extractFunction · 0.45
extract_type_aliasMethod · 0.45

Calls 10

maybe_capture_fn_refsMethod · 0.45
extract_functionMethod · 0.45
extract_methodMethod · 0.45
extract_type_aliasMethod · 0.45
inside_class_likeMethod · 0.45
extract_variableMethod · 0.45
scan_fn_ref_subtreeMethod · 0.45
extract_importMethod · 0.45
extract_callMethod · 0.45
extract_instantiationMethod · 0.45

Tested by

no test coverage detected