diff options
| author | Guillaume Gomez <guillaume.gomez@huawei.com> | 2024-03-28 11:08:50 +0100 |
|---|---|---|
| committer | Guillaume Gomez <guillaume.gomez@huawei.com> | 2024-03-28 11:08:50 +0100 |
| commit | 75fedfc4eaa9fd62160fadd21a98506520748f95 (patch) | |
| tree | c86d352fafabb3fa3fb4d1329ddf5220ba90262a /src | |
| parent | 35936c4839dd272646394779d151e060d0f6b3ac (diff) | |
| download | rust-75fedfc4eaa9fd62160fadd21a98506520748f95.tar.gz rust-75fedfc4eaa9fd62160fadd21a98506520748f95.zip | |
Correctly get complete intra-doc link data
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/passes/lint/redundant_explicit_links.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/librustdoc/passes/lint/redundant_explicit_links.rs b/src/librustdoc/passes/lint/redundant_explicit_links.rs index f7bc5464707..569c17ee36e 100644 --- a/src/librustdoc/passes/lint/redundant_explicit_links.rs +++ b/src/librustdoc/passes/lint/redundant_explicit_links.rs @@ -90,7 +90,7 @@ fn check_redundant_explicit_link<'md>( ) -> Option<()> { let mut broken_line_callback = |link: BrokenLink<'md>| Some((link.reference, "".into())); let mut offset_iter = Parser::new_with_broken_link_callback( - &doc, + doc, main_body_opts(), Some(&mut broken_line_callback), ) @@ -264,6 +264,7 @@ fn collect_link_data(offset_iter: &mut OffsetIter<'_, '_>) -> LinkData { let mut resolvable_link = None; let mut resolvable_link_range = None; let mut display_link = String::new(); + let mut is_resolvable = true; while let Some((event, range)) = offset_iter.next() { match event { @@ -281,6 +282,11 @@ fn collect_link_data(offset_iter: &mut OffsetIter<'_, '_>) -> LinkData { resolvable_link = Some(code); resolvable_link_range = Some(range); } + Event::Start(_) => { + // If there is anything besides backticks, it's not considered as an intra-doc link + // so we ignore it. + is_resolvable = false; + } Event::End(_) => { break; } @@ -288,6 +294,11 @@ fn collect_link_data(offset_iter: &mut OffsetIter<'_, '_>) -> LinkData { } } + if !is_resolvable { + resolvable_link_range = None; + resolvable_link = None; + } + LinkData { resolvable_link, resolvable_link_range, display_link } } |
