aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2025-03-05 15:34:25 +0000
committerCohenArthur <arthur.cohen@embecosm.com>2025-03-25 14:26:53 +0000
commit29586bb60a34e884732d8e64d9c64cf74e2e9992 (patch)
treea4263d92d2dbb8b26f85997b6ab6c0534fb3af0d /gcc/rust/resolve/rust-late-name-resolver-2.0.cc
parent7215522d64f365f446c31b5a2e8ec206031562e6 (diff)
downloadgcc-29586bb60a34e884732d8e64d9c64cf74e2e9992.zip
gcc-29586bb60a34e884732d8e64d9c64cf74e2e9992.tar.gz
gcc-29586bb60a34e884732d8e64d9c64cf74e2e9992.tar.bz2
name-resolution: Handle let-else properly
gcc/rust/ChangeLog: * resolve/rust-ast-resolve-stmt.h: Add handling for diverging else. * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Likewise.
Diffstat (limited to 'gcc/rust/resolve/rust-late-name-resolver-2.0.cc')
-rw-r--r--gcc/rust/resolve/rust-late-name-resolver-2.0.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
index d1c10e5..5fcf0ec 100644
--- a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
@@ -140,6 +140,9 @@ Late::visit (AST::LetStmt &let)
visit (let.get_init_expr ());
visit (let.get_pattern ());
+ if (let.has_else_expr ())
+ visit (let.get_init_expr ());
+
// how do we deal with the fact that `let a = blipbloup` should look for a
// label and cannot go through function ribs, but `let a = blipbloup()` can?