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

Method visit_node

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

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