Skip to content

Commit a60f29d

Browse files
committed
WIP: rustup
1 parent b456b7c commit a60f29d

File tree

6 files changed

+18
-20
lines changed

6 files changed

+18
-20
lines changed

miri/bin/miri.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ fn after_analysis<'a, 'tcx>(state: &mut CompileState<'a, 'tcx>) {
131131
);
132132
} else if let Some((entry_node_id, _)) = *state.session.entry_fn.borrow() {
133133
let entry_def_id = tcx.hir.local_def_id(entry_node_id);
134-
let start_wrapper = tcx.lang_items.start_fn().and_then(|start_fn| {
134+
let start_wrapper = tcx.lang_items().start_fn().and_then(|start_fn| {
135135
if tcx.is_mir_available(start_fn) {
136136
Some(start_fn)
137137
} else {

miri/fn_call.rs

+10-12
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ impl<'a, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'tcx, super::Evaluator>
9696
dest_ty: Ty<'tcx>,
9797
dest_block: mir::BasicBlock,
9898
) -> EvalResult<'tcx> {
99-
let name = self.tcx.item_name(def_id);
10099
let attrs = self.tcx.get_attrs(def_id);
101-
let link_name = attr::first_attr_value_str_by_name(&attrs, "link_name")
102-
.unwrap_or(name)
103-
.as_str();
100+
let link_name = match attr::first_attr_value_str_by_name(&attrs, "link_name") {
101+
Some(name) => name.as_str(),
102+
None => self.tcx.item_name(def_id),
103+
};
104104

105105
match &link_name[..] {
106106
"malloc" => {
@@ -477,28 +477,26 @@ impl<'a, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'tcx, super::Evaluator>
477477

478478
/// Get an instance for a path.
479479
fn resolve_path(&self, path: &[&str]) -> EvalResult<'tcx, ty::Instance<'tcx>> {
480-
let cstore = &self.tcx.sess.cstore;
481-
482-
let crates = cstore.crates();
483-
crates
480+
self.tcx
481+
.crates()
484482
.iter()
485-
.find(|&&krate| cstore.crate_name(krate) == path[0])
483+
.find(|&&krate| self.tcx.original_crate_name(krate) == path[0])
486484
.and_then(|krate| {
487485
let krate = DefId {
488486
krate: *krate,
489487
index: CRATE_DEF_INDEX,
490488
};
491-
let mut items = cstore.item_children(krate, self.tcx.sess);
489+
let mut items = self.tcx.item_children(krate);
492490
let mut path_it = path.iter().skip(1).peekable();
493491

494492
while let Some(segment) = path_it.next() {
495-
for item in &mem::replace(&mut items, vec![]) {
493+
for item in mem::replace(&mut items, Default::default()).iter() {
496494
if item.ident.name == *segment {
497495
if path_it.peek().is_none() {
498496
return Some(ty::Instance::mono(self.tcx, item.def.def_id()));
499497
}
500498

501-
items = cstore.item_children(item.def.def_id(), self.tcx.sess);
499+
items = self.tcx.item_children(item.def.def_id());
502500
break;
503501
}
504502
}

miri/intrinsic.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ impl<'a, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'tcx, super::Evaluator>
3232
) -> EvalResult<'tcx> {
3333
let substs = instance.substs;
3434

35-
let intrinsic_name = &self.tcx.item_name(instance.def_id()).as_str()[..];
35+
let intrinsic_name = &self.tcx.item_name(instance.def_id())[..];
3636
match intrinsic_name {
3737
"align_offset" => {
3838
// FIXME: return a real value in case the target allocation has an

rustc_tests/src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ fn after_analysis<'a, 'tcx>(state: &mut CompileState<'a, 'tcx>) {
100100
state.hir_crate.unwrap().visit_all_item_likes(&mut Visitor(limits, tcx, state));
101101
} else if let Some((entry_node_id, _)) = *state.session.entry_fn.borrow() {
102102
let entry_def_id = tcx.hir.local_def_id(entry_node_id);
103-
let start_wrapper = tcx.lang_items.start_fn().and_then(|start_fn|
103+
let start_wrapper = tcx.lang_items().start_fn().and_then(|start_fn|
104104
if tcx.is_mir_available(start_fn) { Some(start_fn) } else { None });
105105
miri::eval_main(tcx, entry_def_id, start_wrapper, limits);
106106

src/librustc_mir/interpret/eval_context.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -2267,7 +2267,7 @@ fn fn_once_adapter_instance<'a, 'tcx>(
22672267
substs: ty::ClosureSubsts<'tcx>,
22682268
) -> ty::Instance<'tcx> {
22692269
debug!("fn_once_adapter_shim({:?}, {:?})", closure_did, substs);
2270-
let fn_once = tcx.lang_items.fn_once_trait().unwrap();
2270+
let fn_once = tcx.lang_items().fn_once_trait().unwrap();
22712271
let call_once = tcx.associated_items(fn_once)
22722272
.find(|it| it.kind == ty::AssociatedKind::Method)
22732273
.unwrap()
@@ -2346,7 +2346,7 @@ pub fn resolve<'a, 'tcx>(
23462346
ty::InstanceDef::Intrinsic(def_id)
23472347
}
23482348
_ => {
2349-
if Some(def_id) == tcx.lang_items.drop_in_place_fn() {
2349+
if Some(def_id) == tcx.lang_items().drop_in_place_fn() {
23502350
let ty = substs.type_at(0);
23512351
if needs_drop_glue(tcx, ty) {
23522352
debug!(" => nontrivial drop glue");
@@ -2440,7 +2440,7 @@ fn resolve_associated_item<'a, 'tcx>(
24402440
}
24412441
}
24422442
::rustc::traits::VtableClosure(closure_data) => {
2443-
let trait_closure_kind = tcx.lang_items.fn_trait_kind(trait_id).unwrap();
2443+
let trait_closure_kind = tcx.lang_items().fn_trait_kind(trait_id).unwrap();
24442444
resolve_closure(
24452445
tcx,
24462446
closure_data.closure_def_id,
@@ -2461,7 +2461,7 @@ fn resolve_associated_item<'a, 'tcx>(
24612461
substs: rcvr_substs,
24622462
}
24632463
}
2464-
::rustc::traits::VtableBuiltin(..) if Some(trait_id) == tcx.lang_items.clone_trait() => {
2464+
::rustc::traits::VtableBuiltin(..) if Some(trait_id) == tcx.lang_items().clone_trait() => {
24652465
ty::Instance {
24662466
def: ty::InstanceDef::CloneShim(def_id, trait_ref.self_ty()),
24672467
substs: rcvr_substs

src/librustc_mir/interpret/validation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ impl<'a, 'tcx, M: Machine<'tcx>> EvalContext<'a, 'tcx, M> {
543543
Ok(())
544544
}
545545
TyAdt(adt, subst) => {
546-
if Some(adt.did) == self.tcx.lang_items.unsafe_cell_type() &&
546+
if Some(adt.did) == self.tcx.lang_items().unsafe_cell_type() &&
547547
query.mutbl == MutImmutable
548548
{
549549
// No locks for shared unsafe cells. Also no other validation, the only field is private anyway.

0 commit comments

Comments
 (0)