]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/mem_replace.fixed
Prevent `mem_replace_with_default` lint within macros
[rust.git] / tests / ui / mem_replace.fixed
index 58657b934fbfeb08e74e5d80569bff16afe4a9cc..8606e98335dfe49e172b9c3cdf2481ac6c65188f 100644 (file)
@@ -8,6 +8,7 @@
 // except according to those terms.
 
 // run-rustfix
+// aux-build:macro_rules.rs
 #![allow(unused_imports)]
 #![warn(
     clippy::all,
     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() {