Fix empty SpaceBefore instance

This commit is contained in:
Joshua Warner 2024-12-12 21:38:52 -08:00
parent f1d9667ea0
commit d3426ebce1
No known key found for this signature in database
GPG key ID: 89AD497003F93FDD
7 changed files with 92 additions and 93 deletions

View file

@ -2125,6 +2125,7 @@ fn expr_to_pattern_help<'a>(arena: &'a Bump, expr: &Expr<'a>) -> Result<Pattern<
let mut expr = expr.extract_spaces();
while let Expr::ParensAround(loc_expr) = &expr.item {
dbg!(&loc_expr);
let expr_inner = loc_expr.extract_spaces();
expr.before = merge_spaces(arena, expr.before, expr_inner.before);
@ -3108,22 +3109,24 @@ fn stmts_to_defs<'a>(
Stmt::Expr(Expr::Return(return_value, _after_return)) => {
if i == stmts.len() - 1 {
let region = sp_stmt.item.region;
last_expr = Some(
last_expr = Some(Loc::at(
region,
arena
.alloc(Expr::Return(return_value, None))
.with_spaces_before(sp_stmt.before, region),
);
.maybe_before(arena, sp_stmt.before),
));
} else {
let region = Region::span_across(
&sp_stmt.item.region,
&stmts[stmts.len() - 1].item.region,
);
let rest = stmts_to_expr(&stmts[i + 1..], arena)?;
last_expr = Some(
last_expr = Some(Loc::at(
region,
arena
.alloc(Expr::Return(return_value, Some(arena.alloc(rest))))
.with_spaces_before(sp_stmt.before, region),
);
.maybe_before(arena, sp_stmt.before),
));
}
// don't re-process the rest of the statements, they got consumed by the early return