// run-rustfix fn expect(_: T) {} fn main() { let x = Some(&()); expect::>(x.copied()); //~^ ERROR mismatched types //~| HELP use `Option::copied` to copy the value inside the `Option` let x = Ok(&()); expect::>(x.copied()); //~^ ERROR mismatched types //~| HELP use `Result::copied` to copy the value inside the `Result` let s = String::new(); let x = Some(&s); expect::>(x.cloned()); //~^ ERROR mismatched types //~| HELP use `Option::cloned` to clone the value inside the `Option` let x = Ok(&s); expect::>(x.cloned()); //~^ ERROR mismatched types //~| HELP use `Result::cloned` to clone the value inside the `Result` let s = String::new(); let x = Some(s.clone()); let y = Some(&s); println!("{}", x.as_ref() == y); //~^ ERROR mismatched types //~| HELP use `Option::as_ref` to convert `Option` to `Option<&String>` let mut s = (); let x = Some(s); let y = Some(&mut s); println!("{}", x == y.copied()); //~^ ERROR mismatched types //~| HELP use `Option::copied` to copy the value inside the `Option` let mut s = String::new(); let x = Some(s.clone()); let y = Some(&mut s); println!("{}", x == y.cloned()); //~^ ERROR mismatched types //~| HELP use `Option::cloned` to clone the value inside the `Option` }