aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/tmpls/lints.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_cli/tmpls/lints.tmpl')
-rw-r--r--mingling_cli/tmpls/lints.tmpl18
1 files changed, 18 insertions, 0 deletions
diff --git a/mingling_cli/tmpls/lints.tmpl b/mingling_cli/tmpls/lints.tmpl
index 7507f98..fae1126 100644
--- a/mingling_cli/tmpls/lints.tmpl
+++ b/mingling_cli/tmpls/lints.tmpl
@@ -50,6 +50,24 @@ pub fn run_all_lints(file: &syn::File, source: &str) -> Vec<MlintReport> {
reports
}
+#[macro_export]
+macro_rules! assert_detected {
+ ($linter:expr, $ast_type:ty => $code:tt) => {
+ // Parse the string into a syn::ItemFn
+ let ast: $ast_type = syn::parse_str(&stringify!($code)).unwrap();
+ assert!(!$linter(ast, &stringify!($code).to_string()).is_empty());
+ };
+}
+
+#[macro_export]
+macro_rules! assert_not_detected {
+ ($linter:expr, $ast_type:ty => $code:tt) => {
+ // Parse the string into a syn::ItemFn
+ let ast: $ast_type = syn::parse_str(&stringify!($code)).unwrap();
+ assert!($linter(ast, &stringify!($code).to_string()).is_empty());
+ };
+}
+
@@@ >>> impls
mod <<<mod_name>>>;
pub use <<<mod_name>>>::linter as <<<mod_name>>>;