Skip to content

rustdoc: Fix doctest line computation - #164770

Open
GuillaumeGomez wants to merge 2 commits into
rust-lang:mainfrom
GuillaumeGomez:fix-doctest-line
Open

GuillaumeGomez wants to merge 2 commits into
rust-lang:mainfrom
GuillaumeGomez:fix-doctest-line

Conversation

@GuillaumeGomez

@GuillaumeGomez GuillaumeGomez commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Fixes #164685.

Before going any further: all I describe is done for doctests only. The other doc comments processing remains unchanged.

In case you empty lines, code comments or anything else not taken into account in the current doc string, the doctest line number is wrong. So to fix that, whenever there is a gap between two doc strings, I add empty lines in the doc strings.

All fixed, except now, when we want to emit a warning for a line inside a doctest, we also need this code to take this extra content into account. So I added a Vec<Range> which keeps the position of each doc fragment. So when we know the line we're looking for, we get the index of the range which contains it, and then we get the corresponding doc fragment's span.

All the ui test changes are because it was actually an old bug, so it's fixed. Unexpected positive side-effect I guess. ^^'

r? @Urgau

@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Oct 22, 2026
@rust-log-analyzer

This comment has been minimized.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect line numbers for doctests

4 participants