blob: 1cab7d559d8f1224e0f061cefb623177a0f09723 [file] [log] [blame]
#![allow(unused_imports, clippy::needless_return)]
#![warn(clippy::flat_map_identity)]
use std::convert;
fn main() {
let iterator = [[0, 1], [2, 3], [4, 5]].iter();
let _ = iterator.flat_map(|x| x);
//~^ flat_map_identity
let iterator = [[0, 1], [2, 3], [4, 5]].iter();
let _ = iterator.flat_map(convert::identity);
//~^ flat_map_identity
let iterator = [[0, 1], [2, 3], [4, 5]].iter();
let _ = iterator.flat_map(|x| return x);
//~^ flat_map_identity
}
fn issue15198() {
let x = [[1, 2], [3, 4]];
// don't lint: this is an `Iterator<Item = &[i32, i32]>`
// match ergonomics makes the binding patterns into references
// so that its type changes to `Iterator<Item = [&i32, &i32]>`
let _ = x.iter().flat_map(|[x, y]| [x, y]);
let _ = x.iter().flat_map(|x| [x[0]]);
// no match ergonomics for `[i32, i32]`
let _ = x.iter().copied().flat_map(|[x, y]| [x, y]);
//~^ flat_map_identity
}