https://gcc.gnu.org/g:ba7f3c6d3be644b2fe5737ba134dbd8d61f73b2a

commit r16-2976-gba7f3c6d3be644b2fe5737ba134dbd8d61f73b2a
Author: Arthur Cohen <arthur.co...@embecosm.com>
Date:   Tue Jul 22 17:16:29 2025 +0200

    gccrs: desugar: Cleanup for-loop desugar implementation.
    
    gcc/rust/ChangeLog:
    
            * ast/rust-desugar-for-loops.cc: Remove functions implemented in 
AST::Builder.
            * ast/rust-desugar-for-loops.h: Likewise.

Diff:
---
 gcc/rust/ast/rust-desugar-for-loops.cc | 23 ++++-------------------
 gcc/rust/ast/rust-desugar-for-loops.h  |  2 --
 2 files changed, 4 insertions(+), 21 deletions(-)

diff --git a/gcc/rust/ast/rust-desugar-for-loops.cc 
b/gcc/rust/ast/rust-desugar-for-loops.cc
index 496e8efb557f..5cc1c19ec146 100644
--- a/gcc/rust/ast/rust-desugar-for-loops.cc
+++ b/gcc/rust/ast/rust-desugar-for-loops.cc
@@ -30,19 +30,10 @@ namespace AST {
 
 DesugarForLoops::DesugarForLoops () {}
 
-MatchArm
-DesugarForLoops::DesugarCtx::make_match_arm (std::unique_ptr<Pattern> &&path)
-{
-  auto patterns = std::vector<std::unique_ptr<Pattern>> ();
-  patterns.emplace_back (std::move (path));
-
-  return MatchArm (std::move (patterns), loc);
-}
-
 MatchCase
 DesugarForLoops::DesugarCtx::make_break_arm ()
 {
-  auto arm = make_match_arm (std::unique_ptr<Pattern> (new PathInExpression (
+  auto arm = builder.match_arm (std::unique_ptr<Pattern> (new PathInExpression 
(
     builder.path_in_expression (LangItem::Kind::OPTION_NONE))));
 
   auto break_expr
@@ -65,7 +56,7 @@ DesugarForLoops::DesugarCtx::make_continue_arm ()
     builder.path_in_expression (LangItem::Kind::OPTION_SOME),
     std::move (pattern_item)));
 
-  auto val_arm = make_match_arm (std::move (pattern));
+  auto val_arm = builder.match_arm (std::move (pattern));
 
   auto next = builder.identifier (DesugarCtx::next_value_id);
 
@@ -77,12 +68,6 @@ DesugarForLoops::DesugarCtx::make_continue_arm ()
   return MatchCase (std::move (val_arm), std::move (assignment));
 }
 
-std::unique_ptr<Stmt>
-DesugarForLoops::DesugarCtx::statementify (std::unique_ptr<Expr> &&expr)
-{
-  return std::unique_ptr<Stmt> (new ExprStmt (std::move (expr), loc, true));
-}
-
 std::unique_ptr<Expr>
 DesugarForLoops::desugar (ForLoopExpr &expr)
 {
@@ -126,10 +111,10 @@ DesugarForLoops::desugar (ForLoopExpr &expr)
 
   auto loop_stmts = std::vector<std::unique_ptr<Stmt>> ();
   loop_stmts.emplace_back (std::move (let_next));
-  loop_stmts.emplace_back (ctx.statementify (std::move (match_next)));
+  loop_stmts.emplace_back (ctx.builder.statementify (std::move (match_next)));
   loop_stmts.emplace_back (std::move (let_pat));
   loop_stmts.emplace_back (
-    ctx.statementify (expr.get_loop_block ().clone_expr ()));
+    ctx.builder.statementify (expr.get_loop_block ().clone_expr ()));
 
   // loop {
   //     <let_next>;
diff --git a/gcc/rust/ast/rust-desugar-for-loops.h 
b/gcc/rust/ast/rust-desugar-for-loops.h
index 3a8365cebbb4..96b63ffb0c3b 100644
--- a/gcc/rust/ast/rust-desugar-for-loops.h
+++ b/gcc/rust/ast/rust-desugar-for-loops.h
@@ -83,10 +83,8 @@ private:
     Builder builder;
     location_t loc;
 
-    MatchArm make_match_arm (std::unique_ptr<Pattern> &&pattern);
     MatchCase make_break_arm ();
     MatchCase make_continue_arm ();
-    std::unique_ptr<Stmt> statementify (std::unique_ptr<Expr> &&expr);
 
     constexpr static const char *continue_pattern_id = "#val";
     constexpr static const char *next_value_id = "#__next";

Reply via email to