(stmt: &Statement<'_>, offset: u32, spans: &mut Vec<(u32, u32)>)
| 142 | // ─── Statement walker ─────────────────────────────────────────────────────── |
| 143 | |
| 144 | fn collect_spans_from_statement(stmt: &Statement<'_>, offset: u32, spans: &mut Vec<(u32, u32)>) { |
| 145 | let stmt_span = stmt.span(); |
| 146 | if !push_if_contains(stmt_span, offset, spans) { |
| 147 | return; |
| 148 | } |
| 149 | |
| 150 | match stmt { |
| 151 | Statement::Namespace(ns) => match &ns.body { |
| 152 | NamespaceBody::BraceDelimited(block) => { |
| 153 | push_block(block, offset, spans); |
| 154 | } |
| 155 | NamespaceBody::Implicit(body) => { |
| 156 | for inner in body.statements.iter() { |
| 157 | collect_spans_from_statement(inner, offset, spans); |
| 158 | } |
| 159 | } |
| 160 | }, |
| 161 | |
| 162 | Statement::Class(class) => { |
| 163 | push_brace_pair(class.left_brace, class.right_brace, offset, spans); |
| 164 | for member in class.members.iter() { |
| 165 | collect_spans_from_class_member(member, offset, spans); |
| 166 | } |
| 167 | } |
| 168 | |
| 169 | Statement::Interface(iface) => { |
| 170 | push_brace_pair(iface.left_brace, iface.right_brace, offset, spans); |
| 171 | for member in iface.members.iter() { |
| 172 | collect_spans_from_class_member(member, offset, spans); |
| 173 | } |
| 174 | } |
| 175 | |
| 176 | Statement::Trait(trait_def) => { |
| 177 | push_brace_pair(trait_def.left_brace, trait_def.right_brace, offset, spans); |
| 178 | for member in trait_def.members.iter() { |
| 179 | collect_spans_from_class_member(member, offset, spans); |
| 180 | } |
| 181 | } |
| 182 | |
| 183 | Statement::Enum(enum_def) => { |
| 184 | push_brace_pair(enum_def.left_brace, enum_def.right_brace, offset, spans); |
| 185 | for member in enum_def.members.iter() { |
| 186 | collect_spans_from_class_member(member, offset, spans); |
| 187 | } |
| 188 | } |
| 189 | |
| 190 | Statement::Function(func) => { |
| 191 | push_block(&func.body, offset, spans); |
| 192 | push_paren_pair( |
| 193 | func.parameter_list.left_parenthesis, |
| 194 | func.parameter_list.right_parenthesis, |
| 195 | offset, |
| 196 | spans, |
| 197 | ); |
| 198 | for param in func.parameter_list.parameters.iter() { |
| 199 | collect_spans_from_parameter(param, offset, spans); |
| 200 | } |
| 201 | for inner in func.body.statements.iter() { |
no test coverage detected