#![warn(clippy::unnecessary_lazy_evaluations)] #![allow(clippy::unnecessary_literal_unwrap)] //@no-rustfix struct Deep(Option); #[derive(Copy, Clone)] struct SomeStruct { some_field: usize, } fn main() { // fix will break type inference let _ = Ok(1).unwrap_or_else(|()| 2); //~^ ERROR: unnecessary closure used to substitute value for `Result::Err` //~| NOTE: `-D clippy::unnecessary-lazy-evaluations` implied by `-D warnings` mod e { pub struct E; } let _ = Ok(1).unwrap_or_else(|e::E| 2); //~^ ERROR: unnecessary closure used to substitute value for `Result::Err` let _ = Ok(1).unwrap_or_else(|SomeStruct { .. }| 2); //~^ ERROR: unnecessary closure used to substitute value for `Result::Err` // Fix #6343 let arr = [(Some(1),)]; Some(&0).and_then(|&i| arr[i].0); } fn issue11672() { // Return type annotation helps type inference and removing it can break code let _ = true.then(|| -> &[u8] { &[] }); }