about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorlcnr <rust@lcnr.de>2023-09-05 11:10:00 +0200
committerlcnr <rust@lcnr.de>2023-09-05 11:15:05 +0200
commit98fa0c93ee031277e64eaee11fe9dbfe2147f532 (patch)
tree88ff985858107d9c255062d30a6db1dd499c0f9e /compiler
parent8cfaf70c320297dd1831a12351fcfeab7a231328 (diff)
downloadrust-98fa0c93ee031277e64eaee11fe9dbfe2147f532.tar.gz
rust-98fa0c93ee031277e64eaee11fe9dbfe2147f532.zip
unconstrained region vars: do not ICE ICE baby
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_trait_selection/src/traits/outlives_bounds.rs14
1 files changed, 5 insertions, 9 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/outlives_bounds.rs b/compiler/rustc_trait_selection/src/traits/outlives_bounds.rs
index 339baf611f3..32bbd626d4e 100644
--- a/compiler/rustc_trait_selection/src/traits/outlives_bounds.rs
+++ b/compiler/rustc_trait_selection/src/traits/outlives_bounds.rs
@@ -57,16 +57,12 @@ impl<'a, 'tcx: 'a> InferCtxtExt<'a, 'tcx> for InferCtxt<'tcx> {
         let ty = OpportunisticRegionResolver::new(self).fold_ty(ty);
 
         // We do not expect existential variables in implied bounds.
-        // We may however encounter unconstrained lifetime variables in invalid
-        // code. See #110161 for context.
+        // We may however encounter unconstrained lifetime variables
+        // in very rare cases.
+        //
+        // See `ui/implied-bounds/implied-bounds-unconstrained-2.rs` for
+        // an example.
         assert!(!ty.has_non_region_infer());
-        if ty.has_infer() {
-            self.tcx.sess.delay_span_bug(
-                self.tcx.def_span(body_id),
-                "skipped implied_outlives_bounds due to unconstrained lifetimes",
-            );
-            return vec![];
-        }
 
         let mut canonical_var_values = OriginalQueryValues::default();
         let canonical_ty =