Auto merge of #13409 - lukaslueg:issue13407, r=dswij
Fix `if_then_some_else_none` sugg missing closure intro
Fixes #13407
#13407 works in current stable. The suggestion-generating code got trampled over in 0532104247
:-)
changelog: [`if_then_some_else_none`]: Fix missing closure in suggestion
This commit is contained in:
commit
612ae353d7
@ -105,6 +105,8 @@ fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
|
||||
snippet_with_context(cx, first_stmt.span.until(then_arg.span), ctxt, "..", &mut app);
|
||||
let closure = if method_name == "then" { "|| " } else { "" };
|
||||
format!("{closure} {{ {block_snippet}; {arg_snip} }}")
|
||||
} else if method_name == "then" {
|
||||
(std::borrow::Cow::Borrowed("|| ") + arg_snip).into_owned()
|
||||
} else {
|
||||
arg_snip.into_owned()
|
||||
};
|
||||
|
@ -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 }
|
||||
|
@ -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 }
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user