fix only_used_in_recursion not to lint when unused_variable

This commit is contained in:
Jaeyong Sung 2022-02-13 03:53:23 +09:00
parent 3a090c9f55
commit 8faa938a60
No known key found for this signature in database
GPG key ID: 2B86898CCB2A5486

View file

@ -126,8 +126,20 @@ impl<'tcx> LateLintPass<'tcx> for OnlyUsedInRecursion {
}
}
let mut pre_order = FxHashMap::default();
visitor.graph.iter().for_each(|(_, next)| {
next.iter().for_each(|i| {
*pre_order.entry(*i).or_insert(0) += 1;
});
});
for (id, span, ident) in param_span {
if !visitor.has_side_effect.contains(&id) {
// if the variable is not used in recursion, it would be marked as unused
if !visitor.has_side_effect.contains(&id)
&& *pre_order.get(&id).unwrap_or(&0) > 0
&& visitor.graph.contains_key(&id)
{
span_lint_and_sugg(
cx,
ONLY_USED_IN_RECURSION,