diff options
| author | bors <bors@rust-lang.org> | 2024-03-18 06:28:47 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-03-18 06:28:47 +0000 |
| commit | b5dcaae8448ce700807c9d9fec4763ec00f7e976 (patch) | |
| tree | 3e93d0e61ca44677322f1302b27838e7561e2ee3 /tests/ui/entry.fixed | |
| parent | e9a50f2859d45a8a3720a72a7c27c319e5dfc8c3 (diff) | |
| parent | 4e72ca31b5ff35bbe6ff02431bc214138417ed30 (diff) | |
Auto merge of #12498 - y21:issue12489, r=blyxyas
[`map_entry`]: call the visitor on the local's `else` block Fixes #12489 The lint already has all the logic it needs for figuring out if it can or can't suggest a closure if it sees control flow expressions like `break` or `continue`, but it was ignoring the local's else block, which meant that it didn't see the `return None;` in a `let..else`. changelog: [`map_entry`]: suggest `if let` instead of a closure when `return` expressions exist in the else block of a `let..else`
Diffstat (limited to 'tests/ui/entry.fixed')
| -rw-r--r-- | tests/ui/entry.fixed | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/ui/entry.fixed b/tests/ui/entry.fixed index 71ec13f4610..abdfae2a3e1 100644 --- a/tests/ui/entry.fixed +++ b/tests/ui/entry.fixed @@ -176,4 +176,14 @@ pub fn issue_11935() { } } +fn issue12489(map: &mut HashMap<u64, u64>) -> Option<()> { + if let std::collections::hash_map::Entry::Vacant(e) = map.entry(1) { + let Some(1) = Some(2) else { + return None; + }; + e.insert(42); + } + Some(()) +} + fn main() {} |
