@@ -96,11 +96,11 @@ impl<'a, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'tcx, super::Evaluator>
96
96
dest_ty : Ty < ' tcx > ,
97
97
dest_block : mir:: BasicBlock ,
98
98
) -> EvalResult < ' tcx > {
99
- let name = self . tcx . item_name ( def_id) ;
100
99
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
+ } ;
104
104
105
105
match & link_name[ ..] {
106
106
"malloc" => {
@@ -477,28 +477,26 @@ impl<'a, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'tcx, super::Evaluator>
477
477
478
478
/// Get an instance for a path.
479
479
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 ( )
484
482
. iter ( )
485
- . find ( |& & krate| cstore . crate_name ( krate) == path[ 0 ] )
483
+ . find ( |& & krate| self . tcx . original_crate_name ( krate) == path[ 0 ] )
486
484
. and_then ( |krate| {
487
485
let krate = DefId {
488
486
krate : * krate,
489
487
index : CRATE_DEF_INDEX ,
490
488
} ;
491
- let mut items = cstore . item_children ( krate , self . tcx . sess ) ;
489
+ let mut items = self . tcx . item_children ( krate ) ;
492
490
let mut path_it = path. iter ( ) . skip ( 1 ) . peekable ( ) ;
493
491
494
492
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 ( ) {
496
494
if item. ident . name == * segment {
497
495
if path_it. peek ( ) . is_none ( ) {
498
496
return Some ( ty:: Instance :: mono ( self . tcx , item. def . def_id ( ) ) ) ;
499
497
}
500
498
501
- items = cstore . item_children ( item. def . def_id ( ) , self . tcx . sess ) ;
499
+ items = self . tcx . item_children ( item. def . def_id ( ) ) ;
502
500
break ;
503
501
}
504
502
}
0 commit comments