(&mut self, node: Node<'t>)
| 206 | } |
| 207 | |
| 208 | pub(super) fn extract_enum(&mut self, node: Node<'t>) { |
| 209 | let Some(body) = body_of(node) else { return }; |
| 210 | let name = self.extract_name(node); |
| 211 | let extra = Extra { |
| 212 | docstring: crate::docstring::preceding_docstring(node, self.src), |
| 213 | visibility: self.visibility_of(node), |
| 214 | is_exported: Some(self.is_exported(node)), |
| 215 | ..Extra::default() |
| 216 | }; |
| 217 | let Some(row) = self.create_node("enum", &name, node, extra) else { |
| 218 | return; |
| 219 | }; |
| 220 | self.extract_inheritance(node, row); |
| 221 | self.stack.push(Scope { row, kind: "enum", name }); |
| 222 | for i in 0..body.named_child_count() { |
| 223 | let Some(child) = body.named_child(i) else { continue }; |
| 224 | if matches!(child.kind(), "property_identifier" | "enum_assignment") { |
| 225 | self.extract_enum_members(child); |
| 226 | } else { |
| 227 | self.visit_node(child); |
| 228 | } |
| 229 | } |
| 230 | self.stack.pop(); |
| 231 | } |
| 232 | |
| 233 | fn extract_enum_members(&mut self, node: Node<'t>) { |
| 234 | if let Some(name_node) = node.child_by_field_name("name") { |
no test coverage detected