Skip to content

Commit 5fdc10c

Browse files
committed
Filter out non-macros in resolve_macro
Fixes rust-lang#48341
1 parent a04c124 commit 5fdc10c

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/librustdoc/clean/mod.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,7 @@ fn resolve(cx: &DocContext, path_str: &str, is_val: bool) -> Result<(Def, Option
10081008

10091009
/// Resolve a string as a macro
10101010
fn macro_resolve(cx: &DocContext, path_str: &str) -> Option<Def> {
1011-
use syntax::ext::base::MacroKind;
1011+
use syntax::ext::base::{MacroKind, SyntaxExtension};
10121012
use syntax::ext::hygiene::Mark;
10131013
let segment = ast::PathSegment {
10141014
identifier: ast::Ident::from_str(path_str),
@@ -1025,7 +1025,11 @@ fn macro_resolve(cx: &DocContext, path_str: &str) -> Option<Def> {
10251025
let res = resolver
10261026
.resolve_macro_to_def_inner(mark, &path, MacroKind::Bang, false);
10271027
if let Ok(def) = res {
1028-
Some(def)
1028+
if let SyntaxExtension::DeclMacro(..) = *resolver.get_macro(def) {
1029+
Some(def)
1030+
} else {
1031+
None
1032+
}
10291033
} else if let Some(def) = resolver.all_macros.get(&path_str.into()) {
10301034
Some(*def)
10311035
} else {

0 commit comments

Comments
 (0)