is_from_for_desugar: add match for for _ in x
This will avoid `let_unit_value` in the examples in the ui-test. It might match too widely.
This commit is contained in:
parent
7cdaeae1b8
commit
cf8e95eb22
2 changed files with 38 additions and 0 deletions
|
|
@ -18,8 +18,30 @@ fn main() {
|
|||
let _a = ();
|
||||
}
|
||||
|
||||
consume_units_with_for_loop(); // should be fine as well
|
||||
|
||||
let_and_return!(()) // should be fine
|
||||
}
|
||||
|
||||
// Related to issue #1964
|
||||
fn consume_units_with_for_loop() {
|
||||
// `for_let_unit` lint should not be triggered by consuming them using for loop.
|
||||
let v = vec![(), (), ()];
|
||||
let mut count = 0;
|
||||
for _ in v {
|
||||
count += 1;
|
||||
}
|
||||
assert_eq!(count, 3);
|
||||
|
||||
// Same for consuming from some other Iterator<()>.
|
||||
let (tx, rx) = ::std::sync::mpsc::channel();
|
||||
tx.send(()).unwrap();
|
||||
count = 0;
|
||||
for _ in rx.iter() {
|
||||
count += 1;
|
||||
}
|
||||
assert_eq!(count, 1);
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct ContainsUnit(()); // should be fine
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue