Fix unused_assignments false positives from macros

This commit is contained in:
yukang 2025-11-20 20:53:51 +08:00
parent 140044cffa
commit f943606503
3 changed files with 22 additions and 0 deletions

View file

@ -72,6 +72,11 @@ pub(crate) fn check_liveness<'tcx>(tcx: TyCtxt<'tcx>, def_id: LocalDefId) -> Den
return DenseBitSet::new_empty(0);
}
// Don't run unused pass for items generated by foreign macros
if tcx.def_span(parent).in_external_macro(tcx.sess.source_map()) {
return DenseBitSet::new_empty(0);
}
let mut body = &*tcx.mir_promoted(def_id).0.borrow();
let mut body_mem;

View file

@ -0,0 +1,7 @@
#[macro_export]
macro_rules! unused_assign {
($x:ident) => {
let mut $x = 1;
$x = 2;
};
}

View file

@ -0,0 +1,10 @@
//@ check-pass
//@ aux-build:aux_issue_147648.rs
#![deny(unused_assignments)]
extern crate aux_issue_147648;
fn main() {
aux_issue_147648::unused_assign!(y);
}