Improved loop bodies

This commit is contained in:
2026-05-22 03:25:05 +02:00
parent a26c1c31fb
commit c5c5e885bf
6 changed files with 51 additions and 21 deletions
+4 -8
View File
@@ -100,14 +100,10 @@ impl GenRust for Expression {
}
}
if let Expression::Statement(stmt) = self {
if !stmt.is_block() && ensure_semicolon {
ctx.expr_ensure_semicolon = true;
cg.add(";");
}
} else {
if ensure_semicolon {
ctx.expr_ensure_semicolon = true;
if ensure_semicolon {
ctx.expr_ensure_semicolon = true;
if !self.is_block() {
cg.add(";");
}
}
+5 -5
View File
@@ -76,18 +76,18 @@ impl GenRust for Statement {
cg.add("if ");
initial.condition.gen_rust(ctx, cg);
cg.add(" ");
cg.ensure_brackets(ctx, &initial.body);
cg.ensure_brackets_expr(ctx, &initial.body);
for else_if_branch in else_if {
cg.add("else if");
else_if_branch.condition.gen_rust(ctx, cg);
cg.add(" ");
cg.ensure_brackets(ctx, &else_if_branch.body);
cg.ensure_brackets_expr(ctx, &else_if_branch.body);
}
if let Some(else_br) = else_branch {
cg.add(" else ");
cg.ensure_brackets(ctx, else_br);
cg.ensure_brackets_expr(ctx, else_br);
}
}
@@ -95,7 +95,7 @@ impl GenRust for Statement {
cg.add("while ");
condition.gen_rust(ctx, cg);
cg.add(" ");
cg.ensure_brackets(ctx, body);
cg.ensure_brackets_expr(ctx, body);
}
Statement::Loop(body) => {
@@ -156,7 +156,7 @@ impl GenRust for Statement {
pattern.gen_rust(ctx, cg);
cg.add(" in ");
iterator.gen_rust(ctx, cg);
cg.ensure_brackets(ctx, body);
cg.ensure_brackets_expr(ctx, body);
}
Statement::Return(expr) => {