Prevent mem_replace_with_default
lint within macros
Also added test cases for internal and external macros.
This commit is contained in:
parent
2a75241c1a
commit
26812f733d
5 changed files with 44 additions and 9 deletions
|
@ -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() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue