Skip to content

Commit 102b4fc

Browse files
committed
Figure out better names for opaque types!
1 parent 8d73661 commit 102b4fc

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

compiler/rustc_borrowck/src/region_infer/mod.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,8 @@ use crate::diagnostics::{RegionErrorKind, RegionErrors, UniverseInfo};
3131
use crate::member_constraints::{MemberConstraintSet, NllMemberConstraintIndex};
3232
use crate::nll::PoloniusOutput;
3333
use crate::region_infer::reverse_sccs::ReverseSccGraph;
34-
use crate::region_infer::values::{
35-
LivenessValues, PlaceholderIndices, RegionElement, RegionValues, ToElementIndex,
36-
};
34+
use crate::region_infer::values::{LivenessValues, RegionElement, RegionValues, ToElementIndex};
35+
use crate::type_check::free_region_relations::UniversalRegionRelations;
3736
use crate::type_check::Locations;
3837
use crate::type_check::free_region_relations::UniversalRegionRelations;
3938
use crate::universal_regions::UniversalRegions;

compiler/rustc_borrowck/src/region_infer/opaque_types.rs

+12-4
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,18 @@ impl<'tcx> RegionInferenceContext<'tcx> {
213213

214214
// Special handling of higher-ranked regions.
215215
if !self.scc_universe(scc).is_root() {
216-
// FIXME: the original logic was: if this SCC contains one single
217-
// placeholder, equal to vid, then construct a
218-
// ty::Region::new_placeholder out of it, somehow. This no longer
219-
// works as an approach, since we cannot get the prerequisite indices.
216+
if self
217+
.constraint_sccs
218+
.annotation(scc)
219+
.placeholder_representative()
220+
.is_some_and(|representative| representative == vid)
221+
{
222+
if let NllRegionVariableOrigin::Placeholder(p) =
223+
self.definitions[vid].origin
224+
{
225+
return ty::Region::new_placeholder(tcx, p);
226+
}
227+
}
220228
debug!("Cannot get a nice name for higher-ranked region {vid:?} as {region:?}");
221229
return region;
222230
}

0 commit comments

Comments
 (0)