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

Method extract_inheritance

codegraph-kernel/src/php.rs:1163–1181  ·  view source on GitHub ↗

extractInheritance — base_clause takes ONLY the first base (interface multi-extends drops the rest); class_interface_clause takes ALL children unfiltered (full text, incl. leading `\`).

(&mut self, node: Node<'t>, class_row: u32)

Source from the content-addressed store, hash-verified

1161 /// multi-extends drops the rest); class_interface_clause takes ALL
1162 /// children unfiltered (full text, incl. leading `\`).
1163 fn extract_inheritance(&mut self, node: Node<'t>, class_row: u32) {
1164 let extends_kind = edge_kind_index("extends").unwrap();
1165 let implements_kind = edge_kind_index("implements").unwrap();
1166 for i in 0..node.named_child_count() {
1167 let Some(child) = node.named_child(i) else { continue };
1168 if child.kind() == "base_clause" {
1169 if let Some(target) = child.named_child(0) {
1170 let name = self.text(target).to_string();
1171 self.push_ref_at(class_row, &name, extends_kind, target);
1172 }
1173 } else if child.kind() == "class_interface_clause" {
1174 for j in 0..child.named_child_count() {
1175 let Some(iface) = child.named_child(j) else { continue };
1176 let name = self.text(iface).to_string();
1177 self.push_ref_at(class_row, &name, implements_kind, iface);
1178 }
1179 }
1180 }
1181 }
1182
1183 // --- php type refs (extractPhpTypeRefs, 6022) ----------------------------------
1184

Callers 3

extract_classMethod · 0.45
extract_interfaceMethod · 0.45
extract_enumMethod · 0.45

Calls 4

edge_kind_indexFunction · 0.85
unwrapMethod · 0.60
textMethod · 0.45
push_ref_atMethod · 0.45

Tested by

no test coverage detected