mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 15:11:30 +00:00
Fix FP when coercion kicks in
This commit is contained in:
parent
aa7ffa5257
commit
96b31a5b36
2 changed files with 13 additions and 1 deletions
|
@ -1140,7 +1140,8 @@ fn detect_same_item_push<'tcx>(
|
|||
walk_expr(&mut same_item_push_visitor, body);
|
||||
if same_item_push_visitor.should_lint {
|
||||
if let Some((vec, pushed_item)) = same_item_push_visitor.vec_push {
|
||||
let ty = cx.typeck_results().expr_ty(pushed_item);
|
||||
let vec_ty = cx.typeck_results().expr_ty(vec);
|
||||
let ty = vec_ty.walk().nth(1).unwrap().expect_ty();
|
||||
if cx
|
||||
.tcx
|
||||
.lang_items()
|
||||
|
|
|
@ -100,4 +100,15 @@ fn main() {
|
|||
for _ in 0..10 {
|
||||
vec14.push(std::fs::File::open("foobar").unwrap());
|
||||
}
|
||||
// Fix #5979
|
||||
#[derive(Clone)]
|
||||
struct S {}
|
||||
|
||||
trait T {}
|
||||
impl T for S {}
|
||||
|
||||
let mut vec15: Vec<Box<dyn T>> = Vec::new();
|
||||
for _ in 0..10 {
|
||||
vec15.push(Box::new(S {}));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue