mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 15:11:30 +00:00
9f5de6626b
suggest passing function instead of calling it in closure for [`option_if_let_else`] fixes: #11429 changelog: suggest passing function instead of calling it in closure for [`option_if_let_else`]
311 lines
8.5 KiB
Text
311 lines
8.5 KiB
Text
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:11:5
|
|
|
|
|
LL | / if let Some(x) = string {
|
|
LL | | (true, x)
|
|
LL | | } else {
|
|
LL | | (false, "hello")
|
|
LL | | }
|
|
| |_____^ help: try: `string.map_or((false, "hello"), |x| (true, x))`
|
|
|
|
|
= note: `-D clippy::option-if-let-else` implied by `-D warnings`
|
|
= help: to override `-D warnings` add `#[allow(clippy::option_if_let_else)]`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:29:13
|
|
|
|
|
LL | let _ = if let Some(s) = *string { s.len() } else { 0 };
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `string.map_or(0, |s| s.len())`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:30:13
|
|
|
|
|
LL | let _ = if let Some(s) = &num { s } else { &0 };
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `num.as_ref().map_or(&0, |s| s)`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:31:13
|
|
|
|
|
LL | let _ = if let Some(s) = &mut num {
|
|
| _____________^
|
|
LL | | *s += 1;
|
|
LL | | s
|
|
LL | | } else {
|
|
LL | | &0
|
|
LL | | };
|
|
| |_____^
|
|
|
|
|
help: try
|
|
|
|
|
LL ~ let _ = num.as_mut().map_or(&0, |s| {
|
|
LL + *s += 1;
|
|
LL + s
|
|
LL ~ });
|
|
|
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:37:13
|
|
|
|
|
LL | let _ = if let Some(ref s) = num { s } else { &0 };
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `num.as_ref().map_or(&0, |s| s)`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:38:13
|
|
|
|
|
LL | let _ = if let Some(mut s) = num {
|
|
| _____________^
|
|
LL | | s += 1;
|
|
LL | | s
|
|
LL | | } else {
|
|
LL | | 0
|
|
LL | | };
|
|
| |_____^
|
|
|
|
|
help: try
|
|
|
|
|
LL ~ let _ = num.map_or(0, |mut s| {
|
|
LL + s += 1;
|
|
LL + s
|
|
LL ~ });
|
|
|
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:44:13
|
|
|
|
|
LL | let _ = if let Some(ref mut s) = num {
|
|
| _____________^
|
|
LL | | *s += 1;
|
|
LL | | s
|
|
LL | | } else {
|
|
LL | | &0
|
|
LL | | };
|
|
| |_____^
|
|
|
|
|
help: try
|
|
|
|
|
LL ~ let _ = num.as_mut().map_or(&0, |s| {
|
|
LL + *s += 1;
|
|
LL + s
|
|
LL ~ });
|
|
|
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:53:5
|
|
|
|
|
LL | / if let Some(x) = arg {
|
|
LL | | let y = x * x;
|
|
LL | | y * y
|
|
LL | | } else {
|
|
LL | | 13
|
|
LL | | }
|
|
| |_____^
|
|
|
|
|
help: try
|
|
|
|
|
LL ~ arg.map_or(13, |x| {
|
|
LL + let y = x * x;
|
|
LL + y * y
|
|
LL + })
|
|
|
|
|
|
|
error: use Option::map_or_else instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:66:13
|
|
|
|
|
LL | let _ = if let Some(x) = arg {
|
|
| _____________^
|
|
LL | | x
|
|
LL | | } else {
|
|
LL | | // map_or_else must be suggested
|
|
LL | | side_effect()
|
|
LL | | };
|
|
| |_____^ help: try: `arg.map_or_else(side_effect, |x| x)`
|
|
|
|
error: use Option::map_or_else instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:75:13
|
|
|
|
|
LL | let _ = if let Some(x) = arg {
|
|
| _____________^
|
|
LL | | x * x * x * x
|
|
LL | | } else {
|
|
LL | | let mut y = 1;
|
|
... |
|
|
LL | | y
|
|
LL | | };
|
|
| |_____^
|
|
|
|
|
help: try
|
|
|
|
|
LL ~ let _ = arg.map_or_else(|| {
|
|
LL + let mut y = 1;
|
|
LL + y = (y + 2 / y) / 2;
|
|
LL + y = (y + 2 / y) / 2;
|
|
LL + y
|
|
LL ~ }, |x| x * x * x * x);
|
|
|
|
|
|
|
error: use Option::map_or_else instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:108:13
|
|
|
|
|
LL | / if let Some(idx) = s.find('.') {
|
|
LL | | vec![s[..idx].to_string(), s[idx..].to_string()]
|
|
LL | | } else {
|
|
LL | | vec![s.to_string()]
|
|
LL | | }
|
|
| |_____________^ help: try: `s.find('.').map_or_else(|| vec![s.to_string()], |idx| vec![s[..idx].to_string(), s[idx..].to_string()])`
|
|
|
|
error: use Option::map_or_else instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:119:5
|
|
|
|
|
LL | / if let Ok(binding) = variable {
|
|
LL | | println!("Ok {binding}");
|
|
LL | | } else {
|
|
LL | | println!("Err");
|
|
LL | | }
|
|
| |_____^
|
|
|
|
|
help: try
|
|
|
|
|
LL ~ variable.map_or_else(|_| {
|
|
LL + println!("Err");
|
|
LL + }, |binding| {
|
|
LL + println!("Ok {binding}");
|
|
LL + })
|
|
|
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:141:13
|
|
|
|
|
LL | let _ = if let Some(x) = optional { x + 2 } else { 5 };
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `optional.map_or(5, |x| x + 2)`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:151:13
|
|
|
|
|
LL | let _ = if let Some(x) = Some(0) {
|
|
| _____________^
|
|
LL | | loop {
|
|
LL | | if x == 0 {
|
|
LL | | break x;
|
|
... |
|
|
LL | | 0
|
|
LL | | };
|
|
| |_____^
|
|
|
|
|
help: try
|
|
|
|
|
LL ~ let _ = Some(0).map_or(0, |x| loop {
|
|
LL + if x == 0 {
|
|
LL + break x;
|
|
LL + }
|
|
LL ~ });
|
|
|
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:179:13
|
|
|
|
|
LL | let _ = if let Some(x) = Some(0) { s.len() + x } else { s.len() };
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Some(0).map_or(s.len(), |x| s.len() + x)`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:183:13
|
|
|
|
|
LL | let _ = if let Some(x) = Some(0) {
|
|
| _____________^
|
|
LL | | let s = s;
|
|
LL | | s.len() + x
|
|
LL | | } else {
|
|
LL | | 1
|
|
LL | | };
|
|
| |_____^
|
|
|
|
|
help: try
|
|
|
|
|
LL ~ let _ = Some(0).map_or(1, |x| {
|
|
LL + let s = s;
|
|
LL + s.len() + x
|
|
LL ~ });
|
|
|
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:222:13
|
|
|
|
|
LL | let _ = match s {
|
|
| _____________^
|
|
LL | | Some(string) => string.len(),
|
|
LL | | None => 1,
|
|
LL | | };
|
|
| |_____^ help: try: `s.map_or(1, |string| string.len())`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:226:13
|
|
|
|
|
LL | let _ = match Some(10) {
|
|
| _____________^
|
|
LL | | Some(a) => a + 1,
|
|
LL | | None => 5,
|
|
LL | | };
|
|
| |_____^ help: try: `Some(10).map_or(5, |a| a + 1)`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:232:13
|
|
|
|
|
LL | let _ = match res {
|
|
| _____________^
|
|
LL | | Ok(a) => a + 1,
|
|
LL | | _ => 1,
|
|
LL | | };
|
|
| |_____^ help: try: `res.map_or(1, |a| a + 1)`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:236:13
|
|
|
|
|
LL | let _ = match res {
|
|
| _____________^
|
|
LL | | Err(_) => 1,
|
|
LL | | Ok(a) => a + 1,
|
|
LL | | };
|
|
| |_____^ help: try: `res.map_or(1, |a| a + 1)`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:240:13
|
|
|
|
|
LL | let _ = if let Ok(a) = res { a + 1 } else { 5 };
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `res.map_or(5, |a| a + 1)`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:257:9
|
|
|
|
|
LL | / match initial {
|
|
LL | | Some(value) => do_something(value),
|
|
LL | | None => {},
|
|
LL | | }
|
|
| |_________^ help: try: `initial.as_ref().map_or({}, |value| do_something(value))`
|
|
|
|
error: use Option::map_or instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:264:9
|
|
|
|
|
LL | / match initial {
|
|
LL | | Some(value) => do_something2(value),
|
|
LL | | None => {},
|
|
LL | | }
|
|
| |_________^ help: try: `initial.as_mut().map_or({}, |value| do_something2(value))`
|
|
|
|
error: use Option::map_or_else instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:283:24
|
|
|
|
|
LL | let mut _hashmap = if let Some(hm) = &opt {
|
|
| ________________________^
|
|
LL | | hm.clone()
|
|
LL | | } else {
|
|
LL | | HashMap::new()
|
|
LL | | };
|
|
| |_____^ help: try: `opt.as_ref().map_or_else(HashMap::new, |hm| hm.clone())`
|
|
|
|
error: use Option::map_or_else instead of an if let/else
|
|
--> $DIR/option_if_let_else.rs:289:19
|
|
|
|
|
LL | let mut _hm = if let Some(hm) = &opt { hm.clone() } else { new_map!() };
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `opt.as_ref().map_or_else(|| new_map!(), |hm| hm.clone())`
|
|
|
|
error: aborting due to 25 previous errors
|
|
|