(
if_stmt: &control_flow::r#if::If<'_>,
offset: u32,
spans: &mut Vec<(u32, u32)>,
)
| 505 | // ─── If walker ────────────────────────────────────────────────────────────── |
| 506 | |
| 507 | fn collect_spans_from_if( |
| 508 | if_stmt: &control_flow::r#if::If<'_>, |
| 509 | offset: u32, |
| 510 | spans: &mut Vec<(u32, u32)>, |
| 511 | ) { |
| 512 | collect_spans_from_expression(if_stmt.condition, offset, spans); |
| 513 | |
| 514 | match &if_stmt.body { |
| 515 | IfBody::Statement(body) => { |
| 516 | collect_spans_from_statement(body.statement, offset, spans); |
| 517 | for elseif in body.else_if_clauses.iter() { |
| 518 | let elseif_span: mago_span::Span = elseif.span(); |
| 519 | if push_if_contains(elseif_span, offset, spans) { |
| 520 | collect_spans_from_expression(elseif.condition, offset, spans); |
| 521 | collect_spans_from_statement(elseif.statement, offset, spans); |
| 522 | } |
| 523 | } |
| 524 | if let Some(ref else_clause) = body.else_clause { |
| 525 | let else_span: mago_span::Span = else_clause.span(); |
| 526 | if push_if_contains(else_span, offset, spans) { |
| 527 | collect_spans_from_statement(else_clause.statement, offset, spans); |
| 528 | } |
| 529 | } |
| 530 | } |
| 531 | IfBody::ColonDelimited(body) => { |
| 532 | for inner in body.statements.iter() { |
| 533 | collect_spans_from_statement(inner, offset, spans); |
| 534 | } |
| 535 | for elseif in body.else_if_clauses.iter() { |
| 536 | let elseif_span: mago_span::Span = elseif.span(); |
| 537 | if push_if_contains(elseif_span, offset, spans) { |
| 538 | collect_spans_from_expression(elseif.condition, offset, spans); |
| 539 | for inner in elseif.statements.iter() { |
| 540 | collect_spans_from_statement(inner, offset, spans); |
| 541 | } |
| 542 | } |
| 543 | } |
| 544 | if let Some(ref else_clause) = body.else_clause { |
| 545 | let else_span: mago_span::Span = else_clause.span(); |
| 546 | if push_if_contains(else_span, offset, spans) { |
| 547 | for inner in else_clause.statements.iter() { |
| 548 | collect_spans_from_statement(inner, offset, spans); |
| 549 | } |
| 550 | } |
| 551 | } |
| 552 | } |
| 553 | } |
| 554 | } |
| 555 | |
| 556 | // ─── Expression walker ────────────────────────────────────────────────────── |
| 557 |
no test coverage detected