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()) } }