blob: b51115f02e1b2f4449257e13fd2ca3e6372b479a [file]
#![warn(clippy::mem_replace_option_with_none)]
use std::mem;
fn main() {
let mut an_option = Some(1);
let _ = mem::replace(&mut an_option, None);
//~^ mem_replace_option_with_none
let an_option = &mut Some(1);
let _ = mem::replace(an_option, None);
//~^ mem_replace_option_with_none
}
fn issue9824() {
struct Foo<'a>(Option<&'a str>);
impl<'a> std::ops::Deref for Foo<'a> {
type Target = Option<&'a str>;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for Foo<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
struct Bar {
opt: Option<u8>,
}
let mut f = Foo(Some("foo"));
let mut b = Bar { opt: Some(1) };
let _ = std::mem::replace(&mut f.0, None);
//~^ mem_replace_option_with_none
let _ = std::mem::replace(&mut *f, None);
//~^ mem_replace_option_with_none
let _ = std::mem::replace(&mut b.opt, None);
//~^ mem_replace_option_with_none
}