diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-05-09 19:09:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-09 19:09:29 +0200 |
| commit | ebeedf05cb2208c2cb8156f4582524ba232ef702 (patch) | |
| tree | 173981694bf47907812ae6fbdad7a62e36f5af35 /compiler/rustc_errors/src/snippet.rs | |
| parent | 8c7c151a7a03d92cc5c75c49aa82a658ec1fe4ff (diff) | |
| parent | d4c6c772c39780769786a299df7b522503d86fca (diff) | |
| download | rust-ebeedf05cb2208c2cb8156f4582524ba232ef702.tar.gz rust-ebeedf05cb2208c2cb8156f4582524ba232ef702.zip | |
Rollup merge of #124893 - xldenis:public-region-apis, r=lcnr
Make a minimal amount of region APIs public Tools like Creusot, Prusti or Gillian-Rust need to access information about the loans and regions that exist in MIR programs. While `rustc` provides information about loans, there is currently no public way to reason about the regions present in a MIR program. In particular, we to know which regions are actually equal to each other and which ones outlive each other. Currently, `rustc` provides access to `RegionInferenceContext` but the public api hides that last portion of the information. This PR proposes to make a few apis public, allowing verifiers to reason about the lifetimes present in Rust programs: - [eval_equal](https://doc.rust-lang.org/beta/nightly-rustc/rustc_borrowck/region_infer/struct.RegionInferenceContext.html#method.eval_equal) - [eval_outlives](https://doc.rust-lang.org/beta/nightly-rustc/rustc_borrowck/region_infer/struct.RegionInferenceContext.html#method.eval_outlives) - (Optional) [constraint_sccs](https://doc.rust-lang.org/beta/nightly-rustc/rustc_borrowck/region_infer/struct.RegionInferenceContext.html#method.constraint_sccs) The first two functions would allow us to compare regions and from this we can construct the set of `RegionVid` which are actually equal to each other, and then recover the inclusions between those regions, while the second allows for more direct, but _low level_ access to that information.
Diffstat (limited to 'compiler/rustc_errors/src/snippet.rs')
0 files changed, 0 insertions, 0 deletions
