about summary refs log tree commit diff
path: root/compiler/rustc_borrowck/src
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-02-01 15:09:06 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-02-02 15:40:12 +0000
commit7a1ccf9a03cc0be995a7d8c8f3873c09e7d92f90 (patch)
treecf3f57fc6c5aa06c2ce396c80ed7ca1293ced253 /compiler/rustc_borrowck/src
parentebf2772c5892ec921d464bd56864266d0e7e9972 (diff)
downloadrust-7a1ccf9a03cc0be995a7d8c8f3873c09e7d92f90.tar.gz
rust-7a1ccf9a03cc0be995a7d8c8f3873c09e7d92f90.zip
Avoid an ICE in the presence of HKL
Diffstat (limited to 'compiler/rustc_borrowck/src')
-rw-r--r--compiler/rustc_borrowck/src/region_infer/opaque_types.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/rustc_borrowck/src/region_infer/opaque_types.rs b/compiler/rustc_borrowck/src/region_infer/opaque_types.rs
index 139cebe0e43..f24d8816399 100644
--- a/compiler/rustc_borrowck/src/region_infer/opaque_types.rs
+++ b/compiler/rustc_borrowck/src/region_infer/opaque_types.rs
@@ -66,6 +66,10 @@ impl<'tcx> RegionInferenceContext<'tcx> {
 
                 let mut subst_regions = vec![self.universal_regions.fr_static];
                 let universal_substs = infcx.tcx.fold_regions(substs, &mut false, |region, _| {
+                    if let ty::RePlaceholder(..) = region {
+                        // Higher kinded regions don't need remapping, they don't refer to anything outside of this the substs.
+                        return region;
+                    }
                     let vid = self.to_region_vid(region);
                     trace!(?vid);
                     let scc = self.constraint_sccs.scc(vid);