Check for Default trait in initial expression
This commit is contained in:
parent
c2681f2338
commit
6a6a917fe4
4 changed files with 30 additions and 1 deletions
|
|
@ -16,6 +16,16 @@ fn main() {
|
|||
|
||||
let x: Option<Vec<String>> = None;
|
||||
x.unwrap_or_default();
|
||||
|
||||
// Issue #12564
|
||||
// No error as &Vec<_> doesn't implement std::default::Default
|
||||
let mut map = std::collections::HashMap::from([(0, vec![0; 3]), (1, vec![1; 3]), (2, vec![2])]);
|
||||
let x: &[_] = if let Some(x) = map.get(&0) { x } else { &[] };
|
||||
// Same code as above written using match.
|
||||
let x: &[_] = match map.get(&0) {
|
||||
Some(x) => x,
|
||||
None => &[],
|
||||
};
|
||||
}
|
||||
|
||||
// Issue #12531
|
||||
|
|
|
|||
|
|
@ -37,6 +37,16 @@ fn main() {
|
|||
} else {
|
||||
Vec::default()
|
||||
};
|
||||
|
||||
// Issue #12564
|
||||
// No error as &Vec<_> doesn't implement std::default::Default
|
||||
let mut map = std::collections::HashMap::from([(0, vec![0; 3]), (1, vec![1; 3]), (2, vec![2])]);
|
||||
let x: &[_] = if let Some(x) = map.get(&0) { x } else { &[] };
|
||||
// Same code as above written using match.
|
||||
let x: &[_] = match map.get(&0) {
|
||||
Some(x) => x,
|
||||
None => &[],
|
||||
};
|
||||
}
|
||||
|
||||
// Issue #12531
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ LL | | };
|
|||
| |_____^ help: replace it with: `x.unwrap_or_default()`
|
||||
|
||||
error: match can be simplified with `.unwrap_or_default()`
|
||||
--> tests/ui/manual_unwrap_or_default.rs:46:20
|
||||
--> tests/ui/manual_unwrap_or_default.rs:56:20
|
||||
|
|
||||
LL | Some(_) => match *b {
|
||||
| ____________________^
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue