From fe24db7cb72e5b09d051c07cc38cf5cb6753a860 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 28 Sep 2023 05:30:50 -0400 Subject: [PATCH] Update posts/inside-rust/2023-09-25-polonius-update.md --- posts/inside-rust/2023-09-25-polonius-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-09-25-polonius-update.md b/posts/inside-rust/2023-09-25-polonius-update.md index 9c09f1172..88319b246 100644 --- a/posts/inside-rust/2023-09-25-polonius-update.md +++ b/posts/inside-rust/2023-09-25-polonius-update.md @@ -75,7 +75,7 @@ Here are the roadmap's milestones: Today, the trait solver produces higher-ranked outlives constraints and the borrow checker solves them. In the future, we would like to make the [next trait solver](https://github.com/rust-lang/trait-system-refactor-initiative/) responsible for solving these higher-ranked constraints itself, so that it only produces constraints on regions in the root [universe](https://rustc-dev-guide.rust-lang.org/borrow_check/region_inference/placeholders_and_universes.html#what-is-a-universe) (which the borrow checker can easily process). This would allow us to solve implication predicates like `for { if (T: 'a, 'a: 'b) { T: 'b } }` without having to effectively reproduce the same trait solving logic again. -In the shorter term, we can refactor the borrow checker to separate out the higher-ranked processing from the ordinary processing. The goal would be to preprocess the outlives constraints in a kind of Polonius ["leak check"](https://rustc-dev-guide.rust-lang.org/traits/hrtb.html#basic-matching-and-placeholder-leaks), where we can compute the higher-ranked errors. This can then be removed once the trait solver can solve these constraints. +In the shorter term, we are exploring refactoring the borrow checker to separate out the higher-ranked processing from the ordinary processing. The goal would be to preprocess the outlives constraints in a kind of Polonius ["leak check"](https://rustc-dev-guide.rust-lang.org/traits/hrtb.html#basic-matching-and-placeholder-leaks), where we can compute the higher-ranked errors. This could then be removed once the trait solver can solve these constraints. Current status: ⏳ members of the types team are starting to work on this task in the next few days.