1
Fork 0

Prevent mem_replace_with_default lint within macros

Also added test cases for internal and external macros.
This commit is contained in:
Krishna Veera Reddy 2019-12-08 11:46:21 -08:00
parent 2a75241c1a
commit 26812f733d
5 changed files with 44 additions and 9 deletions

View file

@ -8,6 +8,7 @@
// except according to those terms.
// run-rustfix
// aux-build:macro_rules.rs
#![allow(unused_imports)]
#![warn(
clippy::all,
@ -16,8 +17,17 @@
clippy::mem_replace_with_default
)]
#[macro_use]
extern crate macro_rules;
use std::mem;
macro_rules! take {
($s:expr) => {
std::mem::replace($s, Default::default())
};
}
fn replace_option_with_none() {
let mut an_option = Some(1);
let _ = an_option.take();
@ -31,6 +41,10 @@ fn replace_with_default() {
let s = &mut String::from("foo");
let _ = std::mem::take(s);
let _ = std::mem::take(s);
// dont lint within macros
take!(s);
take_external!(s);
}
fn main() {