Accept !{} and ![] as macro disambiguators

This commit is contained in:
LeSeulArtichaut 2021-06-21 22:41:27 +02:00
parent 4cd5affcf2
commit dc591e18e8

View File

@ -951,9 +951,9 @@ fn preprocess_link<'a>(
} }
// Parse and strip the disambiguator from the link, if present. // Parse and strip the disambiguator from the link, if present.
let (link_text, path_str, disambiguator) = match Disambiguator::from_str(&link) { let (disambiguator, path_str, link_text) = match Disambiguator::from_str(&link) {
Ok(Some((d, path, link_text))) => (link_text.trim(), path.trim(), Some(d)), Ok(Some((d, path, link_text))) => (Some(d), path.trim(), link_text.trim()),
Ok(None) => (link.trim(), link.trim(), None), Ok(None) => (None, link.trim(), link.trim()),
Err((err_msg, relative_range)) => { Err((err_msg, relative_range)) => {
// Only report error if we would not have ignored this link. See issue #83859. // Only report error if we would not have ignored this link. See issue #83859.
if !should_ignore_link_with_disambiguators(link) { if !should_ignore_link_with_disambiguators(link) {
@ -1538,6 +1538,8 @@ impl Disambiguator {
} else { } else {
let suffixes = [ let suffixes = [
("!()", DefKind::Macro(MacroKind::Bang)), ("!()", DefKind::Macro(MacroKind::Bang)),
("!{}", DefKind::Macro(MacroKind::Bang)),
("![]", DefKind::Macro(MacroKind::Bang)),
("()", DefKind::Fn), ("()", DefKind::Fn),
("!", DefKind::Macro(MacroKind::Bang)), ("!", DefKind::Macro(MacroKind::Bang)),
]; ];