about summary refs log tree commit diff
path: root/compiler/rustc_borrowck/src/polonius/mod.rs
diff options
context:
space:
mode:
authorRémy Rakic <remy.rakic+github@gmail.com>2025-01-09 15:33:38 +0000
committerRémy Rakic <remy.rakic+github@gmail.com>2025-01-17 11:52:58 +0000
commitdee52a31789fb87e04b4762df5b84d52738b1adb (patch)
tree16e14e2dfe4d89a1c092039544bc4a2315786f11 /compiler/rustc_borrowck/src/polonius/mod.rs
parent0114a9707e92306adc15111cfb1ea9d1ab0e8f05 (diff)
downloadrust-dee52a31789fb87e04b4762df5b84d52738b1adb.tar.gz
rust-dee52a31789fb87e04b4762df5b84d52738b1adb.zip
encode `Locations::All` typeck constraints as logical edges
Instead of materializing `Locations::All` constraints as physical edges
at all the points in the CFG, we record them as logical edges and only
materialize them during traversal as successors for a given node.

This fixes the slowness/hang in the `saturating-float-casts.rs` test.
Diffstat (limited to 'compiler/rustc_borrowck/src/polonius/mod.rs')
-rw-r--r--compiler/rustc_borrowck/src/polonius/mod.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_borrowck/src/polonius/mod.rs b/compiler/rustc_borrowck/src/polonius/mod.rs
index 52a5f75d8a2..502c868194a 100644
--- a/compiler/rustc_borrowck/src/polonius/mod.rs
+++ b/compiler/rustc_borrowck/src/polonius/mod.rs
@@ -130,6 +130,7 @@ impl PoloniusContext {
             tcx,
             body,
             regioncx.liveness_constraints(),
+            regioncx.outlives_constraints(),
             borrow_set,
             &localized_outlives_constraints,
         );