about summary refs log tree commit diff
path: root/src/tools/clippy/mini-macro/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/mini-macro/src/lib.rs')
-rw-r--r--src/tools/clippy/mini-macro/src/lib.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/tools/clippy/mini-macro/src/lib.rs b/src/tools/clippy/mini-macro/src/lib.rs
new file mode 100644
index 00000000000..92b6f701555
--- /dev/null
+++ b/src/tools/clippy/mini-macro/src/lib.rs
@@ -0,0 +1,26 @@
+#![feature(proc_macro_quote, proc_macro_hygiene)]
+#![deny(rust_2018_idioms)]
+// FIXME: Remove this attribute once the weird failure is gone.
+#![allow(unused_extern_crates)]
+extern crate proc_macro;
+
+use proc_macro::{quote, TokenStream};
+
+#[proc_macro_derive(ClippyMiniMacroTest)]
+pub fn mini_macro(_: TokenStream) -> TokenStream {
+    quote!(
+        #[allow(unused)]
+        fn needless_take_by_value(s: String) {
+            println!("{}", s.len());
+        }
+        #[allow(unused)]
+        fn needless_loop(items: &[u8]) {
+            for i in 0..items.len() {
+                println!("{}", items[i]);
+            }
+        }
+        fn line_wrapper() {
+            println!("{}", line!());
+        }
+    )
+}