(&mut self, node: Node<'t>)
| 960 | } |
| 961 | |
| 962 | fn extract_import(&mut self, node: Node<'t>) { |
| 963 | let import_text = self.text(node).trim().to_string(); |
| 964 | let identifier = (0..node.named_child_count()) |
| 965 | .filter_map(|i| node.named_child(i)) |
| 966 | .find(|c| c.kind() == "identifier"); |
| 967 | let Some(identifier) = identifier else { return }; // hook null → nothing |
| 968 | let module_name = self.text(identifier).to_string(); |
| 969 | if module_name.is_empty() { |
| 970 | return; |
| 971 | } |
| 972 | self.create_node( |
| 973 | "import", |
| 974 | &module_name, |
| 975 | node, |
| 976 | Extra { signature: Some(import_text), ..Extra::default() }, |
| 977 | ); |
| 978 | let parent = self.top_row(); |
| 979 | self.push_ref_at(parent, &module_name.clone(), edge_kind_index("imports").unwrap(), node); |
| 980 | } |
| 981 | |
| 982 | /// extractCall — swift rides the generic member branch (navigation) and |
| 983 | /// the raw-text else; the full matrix is in the checklist. |
no test coverage detected