Skip to content

Commit

Permalink
use retain to avoid the allocation
Browse files Browse the repository at this point in the history
  • Loading branch information
Eh2406 committed Jun 28, 2018
1 parent 8a35601 commit 0119669
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions src/librustc_mir/borrow_check/nll/region_infer/mod.rs
Expand Up @@ -251,7 +251,7 @@ impl<'tcx> RegionInferenceContext<'tcx> {
var_infos: VarInfos,
universal_regions: UniversalRegions<'tcx>,
mir: &Mir<'tcx>,
outlives_constraints: Vec<OutlivesConstraint>,
mut outlives_constraints: Vec<OutlivesConstraint>,
type_tests: Vec<TypeTest<'tcx>>,
) -> Self {
// The `next` field should not yet have been initialized:
Expand All @@ -268,22 +268,22 @@ impl<'tcx> RegionInferenceContext<'tcx> {
.map(|info| RegionDefinition::new(info.origin))
.collect();

let mut seen_constraints: FxHashSet<(RegionVid, RegionVid)> = Default::default();

outlives_constraints.retain(|c| c.sup != c.sub && seen_constraints.insert(c.dedup_key()));

let mut result = Self {
definitions,
elements: elements.clone(),
liveness_constraints: RegionValues::new(elements, num_region_variables),
inferred_values: None,
dependency_map: None,
constraints: Default::default(),
seen_constraints: Default::default(),
constraints: IndexVec::from_raw(outlives_constraints),
seen_constraints,
type_tests,
universal_regions,
};

for c in outlives_constraints {
result.add_outlives_iner(c);
}

result.init_universal_regions();

result
Expand Down

0 comments on commit 0119669

Please sign in to comment.