From dcbb27aa60f5105a49d5e416490d6549385c325d Mon Sep 17 00:00:00 2001 From: Michael Hewson Date: Thu, 9 Nov 2017 08:39:02 -0500 Subject: [PATCH] fix the bug in region_inference where constraint origins were being overwritten --- src/librustc/infer/region_inference/mod.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/librustc/infer/region_inference/mod.rs b/src/librustc/infer/region_inference/mod.rs index 8351be49076..0bc388a0089 100644 --- a/src/librustc/infer/region_inference/mod.rs +++ b/src/librustc/infer/region_inference/mod.rs @@ -633,11 +633,12 @@ impl<'a, 'gcx, 'tcx> RegionVarBindings<'a, 'gcx, 'tcx> { debug!("RegionVarBindings: add_constraint({:?})", constraint); - if self.constraints.borrow_mut().insert(constraint, origin).is_none() { + self.constraints.borrow_mut().entry(constraint).or_insert_with(|| { if self.in_snapshot() { self.undo_log.borrow_mut().push(AddConstraint(constraint)); } - } + origin + }); } fn add_verify(&self, verify: Verify<'tcx>) {