diff options
| author | bors <bors@rust-lang.org> | 2017-09-08 23:47:16 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-09-08 23:47:16 +0000 |
| commit | dee6d0f62e3b8bf8e58c4106f0f9bb54237c0807 (patch) | |
| tree | 9d6a5769637d9f38e21c687eadc05e0cf1190397 /src/liballoc/string.rs | |
| parent | dead08cb331343b84564628b139b657f93548320 (diff) | |
| parent | c1dddcec06428f5a19adb936774b31d42b57d8af (diff) | |
| download | rust-dee6d0f62e3b8bf8e58c4106f0f9bb54237c0807.tar.gz rust-dee6d0f62e3b8bf8e58c4106f0f9bb54237c0807.zip | |
Auto merge of #44269 - nikomatsakis:issue-43613-limit-cache-obligations, r=arielb1
limit and clear cache obligations opportunistically Keeping **all** the obligations for every projection is wasteful of memory and compilation time. We only really care about those subobligations that may inform the result of the projection (i.e., may help to resolve any inference variables that appear within). Therefore, we can clear the subobligations from the cache that don't potentially affect the result of the projection. On every cache hit, we also take the opportunity to check if the type variables have been resolved *yet* and, if so, clear out the pending obligations. Fixes #43613. r? @arielb1 NB -- not sure how to test for this. Probably we should add the #43613 test case to perf.
Diffstat (limited to 'src/liballoc/string.rs')
0 files changed, 0 insertions, 0 deletions
