@@ -415,29 +415,28 @@ impl Item {
415
415
. unwrap_or ( false )
416
416
}
417
417
418
- pub ( crate ) fn span ( & self , tcx : TyCtxt < ' _ > ) -> Span {
418
+ pub ( crate ) fn span ( & self , tcx : TyCtxt < ' _ > ) -> Option < Span > {
419
419
let kind = match & * self . kind {
420
420
ItemKind :: StrippedItem ( k) => k,
421
421
_ => & * self . kind ,
422
422
} ;
423
423
match kind {
424
- ItemKind :: ModuleItem ( Module { span, .. } ) => * span,
425
- ItemKind :: ImplItem ( box Impl { kind : ImplKind :: Auto , .. } ) => Span :: dummy ( ) ,
424
+ ItemKind :: ModuleItem ( Module { span, .. } ) => Some ( * span) ,
425
+ ItemKind :: ImplItem ( box Impl { kind : ImplKind :: Auto , .. } ) => None ,
426
426
ItemKind :: ImplItem ( box Impl { kind : ImplKind :: Blanket ( _) , .. } ) => {
427
427
if let ItemId :: Blanket { impl_id, .. } = self . item_id {
428
- rustc_span ( impl_id, tcx)
428
+ Some ( rustc_span ( impl_id, tcx) )
429
429
} else {
430
430
panic ! ( "blanket impl item has non-blanket ID" )
431
431
}
432
432
}
433
- _ => {
434
- self . item_id . as_def_id ( ) . map ( |did| rustc_span ( did, tcx) ) . unwrap_or_else ( Span :: dummy)
435
- }
433
+ _ => self . item_id . as_def_id ( ) . map ( |did| rustc_span ( did, tcx) ) ,
436
434
}
437
435
}
438
436
439
437
pub ( crate ) fn attr_span ( & self , tcx : TyCtxt < ' _ > ) -> rustc_span:: Span {
440
- crate :: passes:: span_of_attrs ( & self . attrs ) . unwrap_or_else ( || self . span ( tcx) . inner ( ) )
438
+ crate :: passes:: span_of_attrs ( & self . attrs )
439
+ . unwrap_or_else ( || self . span ( tcx) . map_or ( rustc_span:: DUMMY_SP , |span| span. inner ( ) ) )
441
440
}
442
441
443
442
/// Finds the `doc` attribute as a NameValue and returns the corresponding
@@ -2109,14 +2108,6 @@ impl Span {
2109
2108
self . 0
2110
2109
}
2111
2110
2112
- pub ( crate ) fn dummy ( ) -> Self {
2113
- Self ( rustc_span:: DUMMY_SP )
2114
- }
2115
-
2116
- pub ( crate ) fn is_dummy ( & self ) -> bool {
2117
- self . 0 . is_dummy ( )
2118
- }
2119
-
2120
2111
pub ( crate ) fn filename ( & self , sess : & Session ) -> FileName {
2121
2112
sess. source_map ( ) . span_to_filename ( self . 0 )
2122
2113
}
0 commit comments