]> git.lizzy.rs Git - rust.git/commitdiff
Introduce the declare_tool_lint macro
authorflip1995 <9744647+flip1995@users.noreply.github.com>
Mon, 30 Jul 2018 09:20:11 +0000 (11:20 +0200)
committerflip1995 <9744647+flip1995@users.noreply.github.com>
Mon, 30 Jul 2018 09:20:11 +0000 (11:20 +0200)
src/librustc/lint/mod.rs

index 3c1b20562089200aa9e1989f8855d193d487b714..6940826ba86536ef1001032e1c6e30eca5e833c8 100644 (file)
@@ -139,6 +139,26 @@ macro_rules! declare_lint {
     );
 }
 
+#[macro_export]
+macro_rules! declare_tool_lint {
+    ($vis: vis $tool: ident ::$NAME: ident, $Level: ident, $desc: expr) => (
+        declare_tool_lint!{$vis $tool::$NAME, $Level, $desc, false}
+    );
+    ($vis: vis $tool: ident ::$NAME: ident, $Level: ident, $desc: expr,
+     report_in_external_macro: $rep: expr) => (
+         declare_tool_lint!{$vis $tool::$NAME, $Level, $desc, $rep}
+    );
+    ($vis: vis $tool: ident ::$NAME: ident, $Level: ident, $desc: expr, $external: expr) => (
+        $vis static $NAME: &$crate::lint::Lint = &$crate::lint::Lint {
+            name: &concat!(stringify!($tool), "::", stringify!($NAME)),
+            default_level: $crate::lint::$Level,
+            desc: $desc,
+            edition_lint_opts: None,
+            report_in_external_macro: $external,
+        };
+    );
+}
+
 /// Declare a static `LintArray` and return it as an expression.
 #[macro_export]
 macro_rules! lint_array {