Rollup merge of #97032 - est31:unused_macro_rules, r=petrochenkov
Allow the unused_macro_rules lint for now It was newly added by #96150 with warn by default, which is great as it gave exposure to the community, and their feedback gave me ideas for improvements. Allowing the lint is good for two reasons: * It makes the transition easier as e.g. allow directives won't fire the unknown lint warning once it is turned to warn by default in the future. The [commit that allowed the lint in fuchsia](https://fuchsia.googlesource.com/fuchsia/+/9d8f96517c3963de2f0e25598fd36061914524cd%5E%21/) had to allow unknown lints for example. This is especially important compared to other lints in the unused group, because the _ prefix trick doesn't exist for macro rules, allowing is the only option (either of unused_macro_rules, or of the entire unused group, but that is not as informative to readers). Allowing the lint also makes it possible to work on possible heuristics for disabling the macro in specific cases. * It gives time for implementing heuristics for when to suppress the lint, e.g. when `compile_error!` is invoked by that arm (so it's only there to yield an error). See: https://github.com/rust-lang/rust/pull/96150#issuecomment-1126599107 I would also like this to be backported to the 1.62 beta branch (cc #97016).
This commit is contained in:
commit
673d45124b
@ -790,6 +790,7 @@
|
|||||||
/// ### Example
|
/// ### Example
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// #[warn(unused_macro_rules)]
|
||||||
/// macro_rules! unused_empty {
|
/// macro_rules! unused_empty {
|
||||||
/// (hello) => { println!("Hello, world!") }; // This rule is unused
|
/// (hello) => { println!("Hello, world!") }; // This rule is unused
|
||||||
/// () => { println!("empty") }; // This rule is used
|
/// () => { println!("empty") }; // This rule is used
|
||||||
@ -814,7 +815,7 @@
|
|||||||
///
|
///
|
||||||
/// [`macro_export` attribute]: https://doc.rust-lang.org/reference/macros-by-example.html#path-based-scope
|
/// [`macro_export` attribute]: https://doc.rust-lang.org/reference/macros-by-example.html#path-based-scope
|
||||||
pub UNUSED_MACRO_RULES,
|
pub UNUSED_MACRO_RULES,
|
||||||
Warn,
|
Allow,
|
||||||
"detects macro rules that were not used"
|
"detects macro rules that were not used"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user