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)
| 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 |
no test coverage detected