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

Method extract_inheritance

codegraph-kernel/src/php.rs:1172–1190  ·  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

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

Callers 3

extract_classMethod · 0.45
extract_interfaceMethod · 0.45
extract_enumMethod · 0.45

Calls 4

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

Tested by

no test coverage detected