From 2404dc8cd39ff6be74420e4121f90fe471506171 Mon Sep 17 00:00:00 2001 From: Yuya Nishihara Date: Sat, 1 Apr 2023 17:59:47 +0900 Subject: [PATCH] revset: remove redundant type bound from RevWalkRevset The "'index: 'a" bound can be removed by bypassing the Box indirection of self.iter(). --- lib/src/default_revset_engine.rs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/lib/src/default_revset_engine.rs b/lib/src/default_revset_engine.rs index 3d444ea1d..fa1394ad4 100644 --- a/lib/src/default_revset_engine.rs +++ b/lib/src/default_revset_engine.rs @@ -216,16 +216,11 @@ impl<'index> ToPredicateFn<'index> for EagerRevset<'index> { } } -struct RevWalkRevset<'index, T> -where - // RevWalkRevset<'index> appears to be needed to assert 'index outlives 'a - // in to_predicate_fn<'a>(&'a self) -> Box. - T: Iterator>, -{ +struct RevWalkRevset { walk: T, } -impl<'index, T> InternalRevset<'index> for RevWalkRevset<'index, T> +impl<'index, T> InternalRevset<'index> for RevWalkRevset where T: Iterator> + Clone, { @@ -234,12 +229,12 @@ where } } -impl<'index, T> ToPredicateFn<'index> for RevWalkRevset<'index, T> +impl<'index, T> ToPredicateFn<'index> for RevWalkRevset where T: Iterator> + Clone, { fn to_predicate_fn(&self) -> Box) -> bool + '_> { - predicate_fn_from_iter(self.iter()) + predicate_fn_from_iter(self.walk.clone()) } }