#[macro_export]
macro_rules! declare_late_lint {
($(#[$attr:meta])* $vis:vis $NAME:ident, $Level:ident, $desc:expr) => {
extern crate rustc_lint;
extern crate rustc_session;
$crate::paste::paste! {
rustc_session::declare_lint!($(#[$attr])* $vis $NAME, $Level, $desc);
rustc_session::declare_lint_pass!([< $NAME:camel >] => [$NAME]);
}
};
}
#[macro_export]
macro_rules! declare_early_lint {
($(#[$attr:meta])* $vis:vis $NAME:ident, $Level:ident, $desc:expr) => {
extern crate rustc_lint;
extern crate rustc_session;
$crate::paste::paste! {
rustc_session::declare_lint!($(#[$attr])* $vis $NAME, $Level, $desc);
rustc_session::declare_lint_pass!([< $NAME:camel >] => [$NAME]);
}
};
}
#[macro_export]
macro_rules! declare_pre_expansion_lint {
($(#[$attr:meta])* $vis:vis $NAME:ident, $Level:ident, $desc:expr) => {
extern crate rustc_lint;
extern crate rustc_session;
$crate::paste::paste! {
rustc_session::declare_lint!($(#[$attr])* $vis $NAME, $Level, $desc);
rustc_session::declare_lint_pass!([< $NAME:camel >] => [$NAME]);
}
};
}
#[macro_export]
macro_rules! impl_late_lint {
($(#[$attr:meta])* $vis:vis $NAME:ident, $Level:ident, $desc:expr, $pass:expr) => {
extern crate rustc_lint;
extern crate rustc_session;
$crate::paste::paste! {
rustc_session::declare_lint!($(#[$attr])* $vis $NAME, $Level, $desc);
rustc_session::impl_lint_pass!([< $NAME:camel >] => [$NAME]);
}
};
}
#[macro_export]
macro_rules! impl_early_lint {
($(#[$attr:meta])* $vis:vis $NAME:ident, $Level:ident, $desc:expr, $pass:expr) => {
extern crate rustc_lint;
extern crate rustc_session;
$crate::paste::paste! {
rustc_session::declare_lint!($(#[$attr])* $vis $NAME, $Level, $desc);
rustc_session::impl_lint_pass!([< $NAME:camel >] => [$NAME]);
}
};
}
#[macro_export]
macro_rules! impl_pre_expansion_lint {
($(#[$attr:meta])* $vis:vis $NAME:ident, $Level:ident, $desc:expr, $pass:expr) => {
extern crate rustc_lint;
extern crate rustc_session;
$crate::paste::paste! {
rustc_session::declare_lint!($(#[$attr])* $vis $NAME, $Level, $desc);
rustc_session::impl_lint_pass!([< $NAME:camel >] => [$NAME]);
}
};
}