Fix if_then_some_else_none sugg missing closure intro

Fixes #13407
This commit is contained in:
Lukas Lueg 2024-09-17 23:19:29 +02:00
parent 903293b199
commit c3d58cd5fa
4 changed files with 17 additions and 1 deletions

View file

@ -113,6 +113,10 @@ fn issue11394(b: bool, v: Result<(), ()>) -> Result<(), ()> {
Ok(())
}
fn issue13407(s: &str) -> Option<bool> {
(s == "1").then(|| true)
}
const fn issue12103(x: u32) -> Option<u32> {
// Should not issue an error in `const` context
if x > 42 { Some(150) } else { None }

View file

@ -131,6 +131,10 @@ fn issue11394(b: bool, v: Result<(), ()>) -> Result<(), ()> {
Ok(())
}
fn issue13407(s: &str) -> Option<bool> {
if s == "1" { Some(true) } else { None }
}
const fn issue12103(x: u32) -> Option<u32> {
// Should not issue an error in `const` context
if x > 42 { Some(150) } else { None }

View file

@ -52,5 +52,11 @@ LL | | None
LL | | };
| |_____^ help: try: `foo().then(|| { println!("true!"); 150 })`
error: aborting due to 5 previous errors
error: this could be simplified with `bool::then`
--> tests/ui/if_then_some_else_none.rs:135:5
|
LL | if s == "1" { Some(true) } else { None }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(s == "1").then(|| true)`
error: aborting due to 6 previous errors