Auto merge of #96150 - est31:unused_macro_rules, r=petrochenkov
Implement a lint to warn about unused macro rules This implements a new lint to warn about unused macro rules (arms/matchers), similar to the `unused_macros` lint added by #41907 that warns about entire macros. ```rust macro_rules! unused_empty { (hello) => { println!("Hello, world!") }; () => { println!("empty") }; //~ ERROR: 1st rule of macro `unused_empty` is never used } fn main() { unused_empty!(hello); } ``` Builds upon #96149 and #96156. Fixes #73576
This commit is contained in:
commit
0cd939e36c
34 changed files with 400 additions and 78 deletions
|
@ -258,6 +258,7 @@ macro_rules! make_mir_visitor {
|
|||
// for best performance, we want to use an iterator rather
|
||||
// than a for-loop, to avoid calling `body::Body::invalidate` for
|
||||
// each basic block.
|
||||
#[cfg_attr(not(bootstrap), allow(unused_macro_rules))]
|
||||
macro_rules! basic_blocks {
|
||||
(mut) => (body.basic_blocks_mut().iter_enumerated_mut());
|
||||
() => (body.basic_blocks().iter_enumerated());
|
||||
|
@ -279,6 +280,7 @@ macro_rules! make_mir_visitor {
|
|||
self.visit_local_decl(local, & $($mutability)? body.local_decls[local]);
|
||||
}
|
||||
|
||||
#[cfg_attr(not(bootstrap), allow(unused_macro_rules))]
|
||||
macro_rules! type_annotations {
|
||||
(mut) => (body.user_type_annotations.iter_enumerated_mut());
|
||||
() => (body.user_type_annotations.iter_enumerated());
|
||||
|
@ -932,6 +934,7 @@ macro_rules! make_mir_visitor {
|
|||
body: &$($mutability)? Body<'tcx>,
|
||||
location: Location
|
||||
) {
|
||||
#[cfg_attr(not(bootstrap), allow(unused_macro_rules))]
|
||||
macro_rules! basic_blocks {
|
||||
(mut) => (body.basic_blocks_mut());
|
||||
() => (body.basic_blocks());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue