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

commit r15-9079-gd68ebd1abff36196608e3411a8b1cddd6be80e0f
Author: Arthur Cohen <arthur.co...@embecosm.com>
Date:   Wed Mar 5 15:33:31 2025 +0000

    gccrs: dump: Handle let-else properly
    
    gcc/rust/ChangeLog:
    
            * ast/rust-ast-collector.cc (TokenCollector::visit): Add handling 
for diverging else
            expression.

Diff:
---
 gcc/rust/ast/rust-ast-collector.cc | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gcc/rust/ast/rust-ast-collector.cc 
b/gcc/rust/ast/rust-ast-collector.cc
index 073fa728dcf1..3297407e6e82 100644
--- a/gcc/rust/ast/rust-ast-collector.cc
+++ b/gcc/rust/ast/rust-ast-collector.cc
@@ -22,6 +22,7 @@
 #include "rust-expr.h"
 #include "rust-item.h"
 #include "rust-keyword-values.h"
+#include "rust-location.h"
 #include "rust-path.h"
 #include "rust-system.h"
 #include "rust-token.h"
@@ -2587,6 +2588,13 @@ TokenCollector::visit (LetStmt &stmt)
       push (Rust::Token::make (EQUAL, UNDEF_LOCATION));
       visit (stmt.get_init_expr ());
     }
+
+  if (stmt.has_else_expr ())
+    {
+      push (Rust::Token::make (ELSE, UNDEF_LOCATION));
+      visit (stmt.get_else_expr ());
+    }
+
   push (Rust::Token::make (SEMICOLON, UNDEF_LOCATION));
 }

Reply via email to