]> git.lizzy.rs Git - rust.git/commit - src/tools/clippy
Auto merge of #66408 - nnethercote:greedy-process_obligations, r=nmatsakis
authorbors <bors@rust-lang.org>
Wed, 4 Dec 2019 14:33:38 +0000 (14:33 +0000)
committerbors <bors@rust-lang.org>
Wed, 4 Dec 2019 14:33:38 +0000 (14:33 +0000)
commitc4f130493564b23e78628af25201e7e2260849f6
tree18069c11a4e8dedbbb248239fa970538bbe47560
parent7fa046534e944193cc47b795b9396a7fcf411d9f
parent05f13a843370995181904ec961a7920eea9ae7bb
Auto merge of #66408 - nnethercote:greedy-process_obligations, r=nmatsakis

Make `process_obligations()` greedier.

`process_obligations()` adds new nodes, but it does not process these
new nodes until the next time it is called.

This commit changes it so that it does process these new nodes within
the same call. This change reduces the number of calls to
`process_obligations()` required to complete processing, sometimes
giving significant speed-ups.

The change required some changes to tests.
- The output of `cycle-cache-err-60010.rs` is slightly different.
- The unit tests required extra cases to handle the earlier processing
  of the added nodes. I mostly did these in the simplest possible way,
  by making the added nodes be ignored, thus giving outcomes the same as
  with the old behaviour. But I changed `success_in_grandchildren()`
  more extensively so that some obligations are completed earlier than
  they used to be.

r? @nikomatsakis