From patchwork Tue Dec 24 13:50:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D7718: rust-directory: simplify bidirectional sampling From: phabricator X-Patchwork-Id: 44039 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Tue, 24 Dec 2019 13:50:19 +0000 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 To: gracinet, #hg-reviewers Cc: durin42, kevincox, mercurial-devel 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, 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()?;