(&mut self, node: Node<'t>)
| 703 | } |
| 704 | |
| 705 | fn extract_enum(&mut self, node: Node<'t>) { |
| 706 | let Some(body) = node.child_by_field_name("body") else { return }; |
| 707 | let name = self.extract_name(node); |
| 708 | let extra = Extra { |
| 709 | docstring: preceding_docstring(node, self.src), |
| 710 | visibility: Some(self.visibility_of(node)), |
| 711 | ..Extra::default() |
| 712 | }; |
| 713 | let Some(row) = self.create_node("enum", &name, node, extra) else { return }; |
| 714 | // The underlying type (`enum ReadType : byte`) sits in base_list → |
| 715 | // an `extends` ref named `byte` (garbage, PRESERVE). |
| 716 | self.extract_inheritance(node, row); |
| 717 | self.stack.push(Scope { row, kind: "enum", name }); |
| 718 | for i in 0..body.named_child_count() { |
| 719 | let Some(child) = body.named_child(i) else { continue }; |
| 720 | if child.kind() == "enum_member_declaration" { |
| 721 | self.extract_enum_members(child); |
| 722 | } else { |
| 723 | self.visit_node(child); |
| 724 | } |
| 725 | } |
| 726 | self.stack.pop(); |
| 727 | } |
| 728 | |
| 729 | fn extract_enum_members(&mut self, node: Node<'t>) { |
| 730 | // name-field path: one enum_member node positioned at the MEMBER node |
no test coverage detected