diff options
| author | bors <bors@rust-lang.org> | 2023-08-31 15:13:05 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-08-31 15:13:05 +0000 |
| commit | 4b71f0303978581cb7444f0c493a0b35dab621e6 (patch) | |
| tree | 3f4f171953be145b6830a2b93790a19f38a0b0d2 /compiler/rustc_interface/src | |
| parent | b30b535124aabf7835a09fe1c07e469711964011 (diff) | |
| parent | 10ef8d9bf7b9acb921b335b48b9b7a3294fe178b (diff) | |
| download | rust-4b71f0303978581cb7444f0c493a0b35dab621e6.tar.gz rust-4b71f0303978581cb7444f0c493a0b35dab621e6.zip | |
Auto merge of #115384 - lqd:default-universe-info, r=matthewjasper
Work around ICE in diagnostics for local super-universes missing `UniverseInfo`s In issue #114907, canonicalization of liveness dropck-outlives results (IIUC) encounters universes absent from the original query. Some local universes [are created](https://github.com/lqd/rust/blob/f3a1bae88c617330b8956818da3cea256336c1cf/compiler/rustc_infer/src/infer/canonical/query_response.rs#L417-L425) for the mapping, but importantly, they won't have associated causes. These missing `UniverseInfo`s can be [needed](https://github.com/lqd/rust/blob/f3a1bae88c617330b8956818da3cea256336c1cf/compiler/rustc_borrowck/src/diagnostics/region_errors.rs#L376) during diagnostics, [causing the `IndexMap: key not found` ICE](https://github.com/lqd/rust/blob/d55522aad87c5605d7edd5dd4b37926e8b446117/compiler/rustc_borrowck/src/region_infer/mod.rs#L2252) seen in the issue. This PR works around this by returning the suboptimal catch-all cause, to avoid the ICE. It does results in suboptimal diagnostics right now, but it's better than an ICE. r? `@matthewjasper.` Let me know if there's a good easy-ish way to fix this, but I believe that for some of these erroneous cases and diagnostics, that inference/canonicalization/higher-ranked subtyping/etc may not behave exactly the same with the new trait solver? If that's the case then it'd probably be best to wait a bit more to do the correct fix. Fixes #114907. cc `@aliemjay`
Diffstat (limited to 'compiler/rustc_interface/src')
0 files changed, 0 insertions, 0 deletions
