@@ -910,8 +910,10 @@ impl<'hir> Map<'hir> {
910
910
}
911
911
}
912
912
913
- pub ( super ) fn opt_ident_span ( self , id : HirId ) -> Option < Span > {
914
- let ident = match self . get ( id) {
913
+ #[ inline]
914
+ fn opt_ident ( self , id : HirId ) -> Option < Ident > {
915
+ match self . get ( id) {
916
+ Node :: Binding ( & Pat { kind : PatKind :: Binding ( _, _, ident, _) , .. } ) => Some ( ident) ,
915
917
// A `Ctor` doesn't have an identifier itself, but its parent
916
918
// struct/variant does. Compare with `hir::Map::opt_span`.
917
919
Node :: Ctor ( ..) => match self . find ( self . get_parent_node ( id) ) ? {
@@ -920,20 +922,17 @@ impl<'hir> Map<'hir> {
920
922
_ => unreachable ! ( ) ,
921
923
} ,
922
924
node => node. ident ( ) ,
923
- } ;
924
- ident. map ( |ident| ident. span )
925
+ }
925
926
}
926
927
928
+ #[ inline]
929
+ pub ( super ) fn opt_ident_span ( self , id : HirId ) -> Option < Span > {
930
+ self . opt_ident ( id) . map ( |ident| ident. span )
931
+ }
932
+
933
+ #[ inline]
927
934
pub fn opt_name ( self , id : HirId ) -> Option < Symbol > {
928
- match self . get ( id) {
929
- Node :: Binding ( & Pat { kind : PatKind :: Binding ( _, _, l, _) , .. } ) => Some ( l. name ) ,
930
- Node :: Ctor ( ..) => match self . find ( self . get_parent_node ( id) ) ? {
931
- Node :: Item ( item) => Some ( item. ident . name ) ,
932
- Node :: Variant ( variant) => Some ( variant. ident . name ) ,
933
- _ => unreachable ! ( ) ,
934
- } ,
935
- node => node. ident ( ) . map ( |i| i. name ) ,
936
- }
935
+ self . opt_ident ( id) . map ( |ident| ident. name )
937
936
}
938
937
939
938
pub fn name ( self , id : HirId ) -> Symbol {
0 commit comments