Skip to content

Commit

Permalink
Merge pull request #4122 from rust-lang/fix-inverted-shadowing
Browse files Browse the repository at this point in the history
Fix more inverted uses of “shadowed”
  • Loading branch information
chriskrycho authored Dec 2, 2024
2 parents 810d8ed + b2e71e8 commit 614c19c
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/ch19-01-all-the-places-for-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,11 @@ background color`.

You can see that `if let` can also introduce new variables which shadow existing
variables in the same way that `match` arms can: the line `if let Ok(age) = age`
introduces a new shadowed `age` variable that contains the value inside the `Ok`
variant. This means we need to place the `if age > 30` condition within that
block: we can’t combine these two conditions into `if let Ok(age) = age && age >
30`. The shadowed `age` we want to compare to 30 isn’t valid until the new scope
starts with the curly bracket.
introduces a new `age` variable that contains the value inside the `Ok` variant,
shadowing the existing `age` variable. This means we need to place the `if age >
30` condition within that block: we can’t combine these two conditions into `if
let Ok(age) = age && age > 30`. The new `age` we want to compare to 30 isn’t
valid until the new scope starts with the curly bracket.

The downside of using `if let` expressions is that the compiler doesn’t check
for exhaustiveness, whereas with `match` expressions it does. If we omitted the
Expand Down

0 comments on commit 614c19c

Please sign in to comment.