Do not base map_entry lint suggestion on expanded code
This commit is contained in:
parent
63562a6854
commit
e4e5924b99
@ -65,6 +65,10 @@
|
||||
impl<'tcx> LateLintPass<'tcx> for HashMapPass {
|
||||
#[expect(clippy::too_many_lines)]
|
||||
fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) {
|
||||
if expr.span.from_expansion() {
|
||||
return;
|
||||
}
|
||||
|
||||
let Some(higher::If { cond: cond_expr, then: then_expr, r#else: else_expr }) = higher::If::hir(expr) else {
|
||||
return
|
||||
};
|
||||
|
@ -152,4 +152,18 @@ fn hash_map<K: Eq + Hash + Copy, V: Copy>(m: &mut HashMap<K, V>, m2: &mut HashMa
|
||||
});
|
||||
}
|
||||
|
||||
// Issue 10331
|
||||
// do not suggest a bad expansion because the compiler unrolls the first
|
||||
// occurrence of the loop
|
||||
pub fn issue_10331() {
|
||||
let mut m = HashMap::new();
|
||||
let mut i = 0;
|
||||
let mut x = 0;
|
||||
while !m.contains_key(&x) {
|
||||
m.insert(x, i);
|
||||
i += 1;
|
||||
x += 1;
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
@ -156,4 +156,18 @@ fn hash_map<K: Eq + Hash + Copy, V: Copy>(m: &mut HashMap<K, V>, m2: &mut HashMa
|
||||
}
|
||||
}
|
||||
|
||||
// Issue 10331
|
||||
// do not suggest a bad expansion because the compiler unrolls the first
|
||||
// occurrence of the loop
|
||||
pub fn issue_10331() {
|
||||
let mut m = HashMap::new();
|
||||
let mut i = 0;
|
||||
let mut x = 0;
|
||||
while !m.contains_key(&x) {
|
||||
m.insert(x, i);
|
||||
i += 1;
|
||||
x += 1;
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
Loading…
Reference in New Issue
Block a user