@@ -904,6 +904,32 @@ impl Clean<Attributes> for [ast::Attribute] {
904
904
}
905
905
} ;
906
906
907
+ let macro_resolve = || {
908
+ use syntax:: ext:: base:: MacroKind ;
909
+ use syntax:: ext:: hygiene:: Mark ;
910
+ let segment = ast:: PathSegment {
911
+ identifier : ast:: Ident :: from_str ( path_str) ,
912
+ span : DUMMY_SP ,
913
+ parameters : None ,
914
+ } ;
915
+ let path = ast:: Path {
916
+ span : DUMMY_SP ,
917
+ segments : vec ! [ segment] ,
918
+ } ;
919
+
920
+ let mut resolver = cx. resolver . borrow_mut ( ) ;
921
+ let mark = Mark :: root ( ) ;
922
+ let res = resolver
923
+ . resolve_macro_to_def_inner ( mark, & path, MacroKind :: Bang , false ) ;
924
+ if let Ok ( def) = res {
925
+ Some ( def)
926
+ } else if let Some ( def) = resolver. all_macros . get ( & path_str. into ( ) ) {
927
+ Some ( * def)
928
+ } else {
929
+ None
930
+ }
931
+ } ;
932
+
907
933
match kind {
908
934
PathKind :: Value => {
909
935
if let Ok ( path) = resolve ( true ) {
@@ -974,34 +1000,18 @@ impl Clean<Attributes> for [ast::Attribute] {
974
1000
path. def
975
1001
} else if let Ok ( path) = resolve ( true ) {
976
1002
path. def
1003
+ } else if let Some ( def) = macro_resolve ( ) {
1004
+ def
977
1005
} else {
978
1006
// this could just be a normal link
979
1007
continue ;
980
1008
}
981
1009
}
982
1010
PathKind :: Macro => {
983
- use syntax:: ext:: base:: MacroKind ;
984
- use syntax:: ext:: hygiene:: Mark ;
985
- let segment = ast:: PathSegment {
986
- identifier : ast:: Ident :: from_str ( path_str) ,
987
- span : DUMMY_SP ,
988
- parameters : None ,
989
- } ;
990
- let path = ast:: Path {
991
- span : DUMMY_SP ,
992
- segments : vec ! [ segment] ,
993
- } ;
994
-
995
- let mut resolver = cx. resolver . borrow_mut ( ) ;
996
- let mark = Mark :: root ( ) ;
997
- let res = resolver
998
- . resolve_macro_to_def_inner ( mark, & path, MacroKind :: Bang , false ) ;
999
- if let Ok ( def) = res {
1011
+ if let Some ( def) = macro_resolve ( ) {
1000
1012
def
1001
- } else if let Some ( def) = resolver. all_macros . get ( & path_str. into ( ) ) {
1002
- * def
1003
1013
} else {
1004
- continue ;
1014
+ continue
1005
1015
}
1006
1016
}
1007
1017
}
0 commit comments