From 741ef41e41e61ae107145d03ffcb263ffec5ca1f Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 7 Dec 2017 04:30:39 -0500 Subject: [PATCH] use Rc to store nonlexical_regioncx in Borrows --- src/librustc_mir/borrow_check/mod.rs | 4 +++- src/librustc_mir/dataflow/impls/borrows.rs | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/librustc_mir/borrow_check/mod.rs b/src/librustc_mir/borrow_check/mod.rs index 4dbb613f8fb6..7df745bb2f45 100644 --- a/src/librustc_mir/borrow_check/mod.rs +++ b/src/librustc_mir/borrow_check/mod.rs @@ -25,6 +25,8 @@ use rustc_data_structures::fx::FxHashSet; use rustc_data_structures::indexed_set::IdxSetBuf; use rustc_data_structures::indexed_vec::Idx; +use std::rc::Rc; + use syntax::ast; use syntax_pos::Span; @@ -202,7 +204,7 @@ fn do_mir_borrowck<'a, 'gcx, 'tcx>( &mut flow_inits, &mdpe.move_data, ); - (Some(regioncx), opt_closure_req) + (Some(Rc::new(regioncx)), opt_closure_req) } else { assert!(!tcx.sess.opts.debugging_opts.nll); (None, None) diff --git a/src/librustc_mir/dataflow/impls/borrows.rs b/src/librustc_mir/dataflow/impls/borrows.rs index 2504aa5ff378..25e4b30da809 100644 --- a/src/librustc_mir/dataflow/impls/borrows.rs +++ b/src/librustc_mir/dataflow/impls/borrows.rs @@ -66,7 +66,7 @@ pub struct Borrows<'a, 'gcx: 'tcx, 'tcx: 'a> { region_map: FxHashMap, FxHashSet>, local_map: FxHashMap>, region_span_map: FxHashMap, - nonlexical_regioncx: Option>, + nonlexical_regioncx: Option>>, } // Two-phase borrows actually requires two flow analyses; they need @@ -147,7 +147,7 @@ impl ReserveOrActivateIndex { impl<'a, 'gcx, 'tcx> Borrows<'a, 'gcx, 'tcx> { pub fn new(tcx: TyCtxt<'a, 'gcx, 'tcx>, mir: &'a Mir<'tcx>, - nonlexical_regioncx: Option>, + nonlexical_regioncx: Option>>, def_id: DefId, body_id: Option) -> Self {