diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-03-05 15:34:25 +0000 |
---|---|---|
committer | CohenArthur <arthur.cohen@embecosm.com> | 2025-03-25 14:26:53 +0000 |
commit | 29586bb60a34e884732d8e64d9c64cf74e2e9992 (patch) | |
tree | a4263d92d2dbb8b26f85997b6ab6c0534fb3af0d /gcc/rust/resolve/rust-ast-resolve-stmt.h | |
parent | 7215522d64f365f446c31b5a2e8ec206031562e6 (diff) | |
download | gcc-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-ast-resolve-stmt.h')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-stmt.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-stmt.h b/gcc/rust/resolve/rust-ast-resolve-stmt.h index 5d58910..a1261a0 100644 --- a/gcc/rust/resolve/rust-ast-resolve-stmt.h +++ b/gcc/rust/resolve/rust-ast-resolve-stmt.h @@ -73,9 +73,10 @@ public: void visit (AST::LetStmt &stmt) override { if (stmt.has_init_expr ()) - { - ResolveExpr::go (stmt.get_init_expr (), prefix, canonical_prefix); - } + ResolveExpr::go (stmt.get_init_expr (), prefix, canonical_prefix); + + if (stmt.has_else_expr ()) + ResolveExpr::go (stmt.get_else_expr (), prefix, canonical_prefix); PatternDeclaration::go (stmt.get_pattern (), Rib::ItemType::Var); if (stmt.has_type ()) |