Remove intermediate vec
This commit is contained in:
parent
fdc9a649ff
commit
8ffec33fd3
1 changed files with 7 additions and 8 deletions
|
@ -89,15 +89,14 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NeedlessPassByValue {
|
||||||
|
|
||||||
let preds = traits::elaborate_predicates(cx.tcx, cx.param_env.caller_bounds.to_vec())
|
let preds = traits::elaborate_predicates(cx.tcx, cx.param_env.caller_bounds.to_vec())
|
||||||
.filter(|p| !p.is_global())
|
.filter(|p| !p.is_global())
|
||||||
.collect::<Vec<_>>();
|
.filter_map(|pred| if let ty::Predicate::Trait(poly_trait_ref) = pred {
|
||||||
let preds = preds
|
if poly_trait_ref.def_id() == sized_trait || poly_trait_ref.skip_binder().has_escaping_regions() {
|
||||||
.iter()
|
return None;
|
||||||
.filter_map(|pred| if let ty::Predicate::Trait(ref poly_trait_ref) = *pred {
|
}
|
||||||
Some(poly_trait_ref.skip_binder())
|
Some(poly_trait_ref)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
})
|
})
|
||||||
.filter(|t| t.def_id() != sized_trait && !t.has_escaping_regions())
|
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
// Collect moved variables and spans which will need dereferencings from the
|
// Collect moved variables and spans which will need dereferencings from the
|
||||||
|
@ -128,7 +127,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NeedlessPassByValue {
|
||||||
let (implements_borrow_trait, all_borrowable_trait) = {
|
let (implements_borrow_trait, all_borrowable_trait) = {
|
||||||
let preds = preds
|
let preds = preds
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|t| t.self_ty() == ty)
|
.filter(|t| t.skip_binder().self_ty() == ty)
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
(
|
(
|
||||||
|
@ -138,7 +137,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NeedlessPassByValue {
|
||||||
cx,
|
cx,
|
||||||
cx.tcx.mk_imm_ref(&RegionKind::ReErased, ty),
|
cx.tcx.mk_imm_ref(&RegionKind::ReErased, ty),
|
||||||
t.def_id(),
|
t.def_id(),
|
||||||
&t.input_types().skip(1).collect::<Vec<_>>(),
|
&t.skip_binder().input_types().skip(1).collect::<Vec<_>>(),
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue