#![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` // match ergonomics makes the binding patterns into references // so that its type changes to `Iterator` 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 }