diff options
| author | bors <bors@rust-lang.org> | 2020-12-26 00:11:30 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-12-26 00:11:30 +0000 |
| commit | 931aa27922b521d89d472f385882b921d3f8d624 (patch) | |
| tree | 10ca7bab3c5025b87f66fce201f2bc27303892f1 /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | |
| parent | 1d2730f413dd9ba67b89dd4c8f65e9331a10471b (diff) | |
| parent | 2e92b13a606ba2f073c789dfd6c33f889f04c8cf (diff) | |
| download | rust-931aa27922b521d89d472f385882b921d3f8d624.tar.gz rust-931aa27922b521d89d472f385882b921d3f8d624.zip | |
Auto merge of #80246 - matthewjasper:projection-cycle-caching, r=Mark-Simulacrum
Prevent caching normalization results with a cycle When normalizing a projection which results in a cycle, we would cache the result of `project_type` without the nested obligations (because they're not needed for inference). This would result in the nested obligations only being handled once in fulfill, which would avoid the cycle error. `get_paranoid_cache_value_obligation` used to add an obligation that resulted in a cycle in this case previously, but was removed by #73905. This PR makes the projection cache not cache the value of a projection if it was ever normalized in a cycle (except in a snapshot that's rolled back). Fixes #79714. r? `@nikomatsakis`
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
