@@ -508,7 +508,7 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
508
508
} ) )
509
509
}
510
510
ast:: ExprPath ( _, ref path) => {
511
- Some ( self . get_path_data ( expr. id , path) )
511
+ self . get_path_data ( expr. id , path)
512
512
}
513
513
_ => {
514
514
// FIXME
@@ -520,7 +520,7 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
520
520
pub fn get_path_data ( & self ,
521
521
id : NodeId ,
522
522
path : & ast:: Path )
523
- -> Data {
523
+ -> Option < Data > {
524
524
let def_map = self . tcx . def_map . borrow ( ) ;
525
525
if !def_map. contains_key ( & id) {
526
526
self . tcx . sess . span_bug ( path. span ,
@@ -535,22 +535,22 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
535
535
def:: DefConst ( ..) |
536
536
def:: DefAssociatedConst ( ..) |
537
537
def:: DefVariant ( ..) => {
538
- Data :: VariableRefData ( VariableRefData {
538
+ Some ( Data :: VariableRefData ( VariableRefData {
539
539
name : self . span_utils . snippet ( sub_span. unwrap ( ) ) ,
540
540
span : sub_span. unwrap ( ) ,
541
541
scope : self . enclosing_scope ( id) ,
542
542
ref_id : def. def_id ( ) ,
543
- } )
543
+ } ) )
544
544
}
545
545
def:: DefStruct ( def_id) |
546
546
def:: DefTy ( def_id, _) |
547
547
def:: DefTrait ( def_id) |
548
548
def:: DefTyParam ( _, _, def_id, _) => {
549
- Data :: TypeRefData ( TypeRefData {
549
+ Some ( Data :: TypeRefData ( TypeRefData {
550
550
span : sub_span. unwrap ( ) ,
551
551
ref_id : def_id,
552
552
scope : self . enclosing_scope ( id) ,
553
- } )
553
+ } ) )
554
554
}
555
555
def:: DefMethod ( decl_id, provenence) => {
556
556
let sub_span = self . span_utils . sub_span_for_meth_name ( path. span ) ;
@@ -581,32 +581,28 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
581
581
} else {
582
582
None
583
583
} ;
584
- Data :: MethodCallData ( MethodCallData {
584
+ Some ( Data :: MethodCallData ( MethodCallData {
585
585
span : sub_span. unwrap ( ) ,
586
586
scope : self . enclosing_scope ( id) ,
587
587
ref_id : def_id,
588
588
decl_id : Some ( decl_id) ,
589
- } )
589
+ } ) )
590
590
} ,
591
591
def:: DefFn ( def_id, _) => {
592
- Data :: FunctionCallData ( FunctionCallData {
592
+ Some ( Data :: FunctionCallData ( FunctionCallData {
593
593
ref_id : def_id,
594
594
span : sub_span. unwrap ( ) ,
595
595
scope : self . enclosing_scope ( id) ,
596
- } )
596
+ } ) )
597
597
}
598
598
def:: DefMod ( def_id) => {
599
- Data :: ModRefData ( ModRefData {
599
+ Some ( Data :: ModRefData ( ModRefData {
600
600
ref_id : def_id,
601
601
span : sub_span. unwrap ( ) ,
602
602
scope : self . enclosing_scope ( id) ,
603
- } )
603
+ } ) )
604
604
}
605
- _ => self . tcx . sess . span_bug ( path. span ,
606
- & format ! ( "Unexpected def kind while looking \
607
- up path in `{}`: `{:?}`",
608
- self . span_utils. snippet( path. span) ,
609
- def) ) ,
605
+ _ => None ,
610
606
}
611
607
}
612
608
0 commit comments