| #![warn(clippy::option_as_ref_cloned)] | |
| #![allow(clippy::clone_on_copy)] | |
| fn main() { | |
| let mut x = Some(String::new()); | |
| let _: Option<String> = x.clone(); | |
| //~^ option_as_ref_cloned | |
| let _: Option<String> = x.clone(); | |
| //~^ option_as_ref_cloned | |
| let y = x.as_ref(); | |
| let _: Option<&String> = y.clone(); | |
| //~^ option_as_ref_cloned | |
| macro_rules! cloned_recv { | |
| () => { | |
| x.as_ref() | |
| }; | |
| } | |
| // Don't lint when part of the expression is from a macro | |
| let _: Option<String> = cloned_recv!().cloned(); | |
| } |