From bc2f9259e609d6027a651c790ccf76f62ab5cd34 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Fri, 8 Sep 2017 19:10:21 +0200 Subject: [PATCH] rustup --- miri/bin/miri.rs | 2 +- miri/fn_call.rs | 22 ++++++++++------------ miri/intrinsic.rs | 2 +- rustc_tests/src/main.rs | 2 +- src/librustc_mir/interpret/eval_context.rs | 8 ++++---- src/librustc_mir/interpret/validation.rs | 2 +- 6 files changed, 18 insertions(+), 20 deletions(-) diff --git a/miri/bin/miri.rs b/miri/bin/miri.rs index 337a723a40d6..9b8790379d8e 100644 --- a/miri/bin/miri.rs +++ b/miri/bin/miri.rs @@ -131,7 +131,7 @@ fn visit_impl_item(&mut self, _impl_item: &'hir hir::ImplItem) {} ); } else if let Some((entry_node_id, _)) = *state.session.entry_fn.borrow() { let entry_def_id = tcx.hir.local_def_id(entry_node_id); - let start_wrapper = tcx.lang_items.start_fn().and_then(|start_fn| { + let start_wrapper = tcx.lang_items().start_fn().and_then(|start_fn| { if tcx.is_mir_available(start_fn) { Some(start_fn) } else { diff --git a/miri/fn_call.rs b/miri/fn_call.rs index a74a53fa7588..d64b254e7ebb 100644 --- a/miri/fn_call.rs +++ b/miri/fn_call.rs @@ -96,11 +96,11 @@ fn call_c_abi( dest_ty: Ty<'tcx>, dest_block: mir::BasicBlock, ) -> EvalResult<'tcx> { - let name = self.tcx.item_name(def_id); let attrs = self.tcx.get_attrs(def_id); - let link_name = attr::first_attr_value_str_by_name(&attrs, "link_name") - .unwrap_or(name) - .as_str(); + let link_name = match attr::first_attr_value_str_by_name(&attrs, "link_name") { + Some(name) => name.as_str(), + None => self.tcx.item_name(def_id), + }; match &link_name[..] { "malloc" => { @@ -477,28 +477,26 @@ fn call_c_abi( /// Get an instance for a path. fn resolve_path(&self, path: &[&str]) -> EvalResult<'tcx, ty::Instance<'tcx>> { - let cstore = &self.tcx.sess.cstore; - - let crates = cstore.crates(); - crates + self.tcx + .crates() .iter() - .find(|&&krate| cstore.crate_name(krate) == path[0]) + .find(|&&krate| self.tcx.original_crate_name(krate) == path[0]) .and_then(|krate| { let krate = DefId { krate: *krate, index: CRATE_DEF_INDEX, }; - let mut items = cstore.item_children(krate, self.tcx.sess); + let mut items = self.tcx.item_children(krate); let mut path_it = path.iter().skip(1).peekable(); while let Some(segment) = path_it.next() { - for item in &mem::replace(&mut items, vec![]) { + for item in mem::replace(&mut items, Default::default()).iter() { if item.ident.name == *segment { if path_it.peek().is_none() { return Some(ty::Instance::mono(self.tcx, item.def.def_id())); } - items = cstore.item_children(item.def.def_id(), self.tcx.sess); + items = self.tcx.item_children(item.def.def_id()); break; } } diff --git a/miri/intrinsic.rs b/miri/intrinsic.rs index 693a478c2df2..bcff3b4aa991 100644 --- a/miri/intrinsic.rs +++ b/miri/intrinsic.rs @@ -32,7 +32,7 @@ fn call_intrinsic( ) -> EvalResult<'tcx> { let substs = instance.substs; - let intrinsic_name = &self.tcx.item_name(instance.def_id()).as_str()[..]; + let intrinsic_name = &self.tcx.item_name(instance.def_id())[..]; match intrinsic_name { "align_offset" => { // FIXME: return a real value in case the target allocation has an diff --git a/rustc_tests/src/main.rs b/rustc_tests/src/main.rs index ea699833f6f6..d1f2f07aaaa6 100644 --- a/rustc_tests/src/main.rs +++ b/rustc_tests/src/main.rs @@ -100,7 +100,7 @@ fn visit_impl_item(&mut self, _impl_item: &'hir hir::ImplItem) {} state.hir_crate.unwrap().visit_all_item_likes(&mut Visitor(limits, tcx, state)); } else if let Some((entry_node_id, _)) = *state.session.entry_fn.borrow() { let entry_def_id = tcx.hir.local_def_id(entry_node_id); - let start_wrapper = tcx.lang_items.start_fn().and_then(|start_fn| + let start_wrapper = tcx.lang_items().start_fn().and_then(|start_fn| if tcx.is_mir_available(start_fn) { Some(start_fn) } else { None }); miri::eval_main(tcx, entry_def_id, start_wrapper, limits); diff --git a/src/librustc_mir/interpret/eval_context.rs b/src/librustc_mir/interpret/eval_context.rs index bc227fcc3985..f97132c0b0f5 100644 --- a/src/librustc_mir/interpret/eval_context.rs +++ b/src/librustc_mir/interpret/eval_context.rs @@ -2267,7 +2267,7 @@ fn fn_once_adapter_instance<'a, 'tcx>( substs: ty::ClosureSubsts<'tcx>, ) -> ty::Instance<'tcx> { debug!("fn_once_adapter_shim({:?}, {:?})", closure_did, substs); - let fn_once = tcx.lang_items.fn_once_trait().unwrap(); + let fn_once = tcx.lang_items().fn_once_trait().unwrap(); let call_once = tcx.associated_items(fn_once) .find(|it| it.kind == ty::AssociatedKind::Method) .unwrap() @@ -2346,7 +2346,7 @@ pub fn resolve<'a, 'tcx>( ty::InstanceDef::Intrinsic(def_id) } _ => { - if Some(def_id) == tcx.lang_items.drop_in_place_fn() { + if Some(def_id) == tcx.lang_items().drop_in_place_fn() { let ty = substs.type_at(0); if needs_drop_glue(tcx, ty) { debug!(" => nontrivial drop glue"); @@ -2440,7 +2440,7 @@ fn resolve_associated_item<'a, 'tcx>( } } ::rustc::traits::VtableClosure(closure_data) => { - let trait_closure_kind = tcx.lang_items.fn_trait_kind(trait_id).unwrap(); + let trait_closure_kind = tcx.lang_items().fn_trait_kind(trait_id).unwrap(); resolve_closure( tcx, closure_data.closure_def_id, @@ -2461,7 +2461,7 @@ fn resolve_associated_item<'a, 'tcx>( substs: rcvr_substs, } } - ::rustc::traits::VtableBuiltin(..) if Some(trait_id) == tcx.lang_items.clone_trait() => { + ::rustc::traits::VtableBuiltin(..) if Some(trait_id) == tcx.lang_items().clone_trait() => { ty::Instance { def: ty::InstanceDef::CloneShim(def_id, trait_ref.self_ty()), substs: rcvr_substs diff --git a/src/librustc_mir/interpret/validation.rs b/src/librustc_mir/interpret/validation.rs index 7dfc781520cd..490f3b3fbcee 100644 --- a/src/librustc_mir/interpret/validation.rs +++ b/src/librustc_mir/interpret/validation.rs @@ -543,7 +543,7 @@ fn try_validate( Ok(()) } TyAdt(adt, subst) => { - if Some(adt.did) == self.tcx.lang_items.unsafe_cell_type() && + if Some(adt.did) == self.tcx.lang_items().unsafe_cell_type() && query.mutbl == MutImmutable { // No locks for shared unsafe cells. Also no other validation, the only field is private anyway.