D7718: rust-directory: simplify bidirectional sampling

gracinet (Georges Racinet) phabricator at mercurial-scm.org
Tue Dec 24 13:50:19 UTC 2019


gracinet created this revision.
Herald added subscribers: mercurial-devel, kevincox, durin42.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Thanks to the typestate pattern, we don't have a
  complicated management of borrows to perform in
  that method with the early return condition and
  the comment was just obsolete.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D7718

AFFECTED FILES
  rust/hg-core/src/discovery.rs

CHANGE DETAILS

diff --git a/rust/hg-core/src/discovery.rs b/rust/hg-core/src/discovery.rs
--- a/rust/hg-core/src/discovery.rs
+++ b/rust/hg-core/src/discovery.rs
@@ -563,13 +563,8 @@
         &mut self,
         size: usize,
     ) -> Result<(HashSet<Revision>, usize), GraphError> {
-        {
-            // we don't want to compute children_cache before this
-            // but doing it after extracting self.undecided takes a mutable
-            // ref to self while a shareable one is still active.
-            if self.undecided.len() <= size {
-                return Ok((self.undecided.clone(), size));
-            }
+        if self.undecided.len() <= size {
+            return Ok((self.undecided.clone(), size));
         }
 
         self.ensure_children_cache()?;



To: gracinet, #hg-reviewers
Cc: durin42, kevincox, mercurial-devel


More information about the Mercurial-devel mailing list