From dc591e18e8597703caa6d84482ff59ba535f83d1 Mon Sep 17 00:00:00 2001 From: LeSeulArtichaut Date: Mon, 21 Jun 2021 22:41:27 +0200 Subject: [PATCH] Accept `!{}` and `![]` as macro disambiguators --- src/librustdoc/passes/collect_intra_doc_links.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs index ce017995a3b..2877af1d0f9 100644 --- a/src/librustdoc/passes/collect_intra_doc_links.rs +++ b/src/librustdoc/passes/collect_intra_doc_links.rs @@ -951,9 +951,9 @@ fn preprocess_link<'a>( } // Parse and strip the disambiguator from the link, if present. - let (link_text, path_str, disambiguator) = match Disambiguator::from_str(&link) { - Ok(Some((d, path, link_text))) => (link_text.trim(), path.trim(), Some(d)), - Ok(None) => (link.trim(), link.trim(), None), + let (disambiguator, path_str, link_text) = match Disambiguator::from_str(&link) { + Ok(Some((d, path, link_text))) => (Some(d), path.trim(), link_text.trim()), + Ok(None) => (None, link.trim(), link.trim()), Err((err_msg, relative_range)) => { // Only report error if we would not have ignored this link. See issue #83859. if !should_ignore_link_with_disambiguators(link) { @@ -1538,6 +1538,8 @@ impl Disambiguator { } else { let suffixes = [ ("!()", DefKind::Macro(MacroKind::Bang)), + ("!{}", DefKind::Macro(MacroKind::Bang)), + ("![]", DefKind::Macro(MacroKind::Bang)), ("()", DefKind::Fn), ("!", DefKind::Macro(MacroKind::Bang)), ];