use syntax_pos::{Span, DUMMY_SP};
use std::fmt;
-use std::rc::Rc;
+use rustc_data_structures::sync::Lrc;
use std::usize;
use transform::{MirPass, MirSource};
}
/// Qualify a whole const, static initializer or const fn.
- fn qualify_const(&mut self) -> (Qualif, Rc<IdxSetBuf<Local>>) {
+ fn qualify_const(&mut self) -> (Qualif, Lrc<IdxSetBuf<Local>>) {
debug!("qualifying {} {:?}", self.mode, self.def_id);
let mir = self.mir;
}
}
- (self.qualif, Rc::new(promoted_temps))
+ (self.qualif, Lrc::new(promoted_temps))
}
}
if self.mode != Mode::Fn &&
// feature-gate is not enabled,
- !self.tcx.sess.features.borrow()
+ !self.tcx.features()
.declared_lib_features
.iter()
.any(|&(ref sym, _)| sym == feature_name) &&
fn mir_const_qualif<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
def_id: DefId)
- -> (u8, Rc<IdxSetBuf<Local>>) {
+ -> (u8, Lrc<IdxSetBuf<Local>>) {
// NB: This `borrow()` is guaranteed to be valid (i.e., the value
// cannot yet be stolen), because `mir_validated()`, which steals
// from `mir_const(), forces this query to execute before
if mir.return_ty().references_error() {
tcx.sess.delay_span_bug(mir.span, "mir_const_qualif: Mir had errors");
- return (Qualif::NOT_CONST.bits(), Rc::new(IdxSetBuf::new_empty(0)));
+ return (Qualif::NOT_CONST.bits(), Lrc::new(IdxSetBuf::new_empty(0)));
}
let mut qualifier = Qualifier::new(tcx, def_id, mir, Mode::Const);