harper-core 2.0.0

The language checker for developers.
Documentation
use super::LintGroup;
use crate::weir::WeirLinter;

macro_rules! generate_boilerplate {
    ([$($name:ident),+ $(,)?]) => {
        pub fn lint_group() -> LintGroup {
            let mut group = LintGroup::default();

                {
                    $(
                        group.add_chunk_expr_linter(stringify!($name), WeirLinter::new(include_str!(concat!(env!("WEIR_RULE_DIR"), "/", stringify!($name), ".weir"))).unwrap());
                    )+
                }

            group.set_all_rules_to(Some(true));

            group
        }

        #[cfg(test)]
        mod tests {
            use paste::paste;
            use crate::weir::tests::assert_passes_all;
            use crate::weir::WeirLinter;

            $(
                paste! {
                    #[test]
                    fn [<run_tests_for_ $name:snake>](){
                        let mut linter = WeirLinter::new(include_str!(concat!(env!("WEIR_RULE_DIR"), "/", stringify!($name), ".weir"))).unwrap();
                        assert_passes_all(&mut linter);
                    }
                }
            )+
        }
    };
}

include!(env!("WEIR_RULE_LIST"));