Skip to content

Commit

Permalink
Rollup merge of #93568 - willcrichton:scrape-examples-leading-whitesp…
Browse files Browse the repository at this point in the history
…ace, r=CraftSpider

Include all contents of first line of scraped item in Rustdoc

This fixes #93528. When scraping examples, it extends the span of the enclosing item to include all characters up to the start of the first line of the span.

r? `@camelid`
  • Loading branch information
matthiaskrgr authored Feb 8, 2022
2 parents 267776a + 1ab23bd commit 3389792
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/librustdoc/scrape_examples.rs
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,8 @@ where
return;
}

let file = tcx.sess.source_map().lookup_char_pos(span.lo()).file;
let source_map = tcx.sess.source_map();
let file = source_map.lookup_char_pos(span.lo()).file;
let file_path = match file.name.clone() {
FileName::Real(real_filename) => real_filename.into_local_path(),
_ => None,
Expand All @@ -217,6 +218,8 @@ where
let fn_entries = self.calls.entry(fn_key).or_default();

trace!("Including expr: {:?}", span);
let enclosing_item_span =
source_map.span_extend_to_prev_char(enclosing_item_span, '\n', false);
let location = CallLocation::new(span, enclosing_item_span, &file);
fn_entries.entry(abs_path).or_insert_with(mk_call_data).locations.push(location);
}
Expand Down
5 changes: 5 additions & 0 deletions src/test/run-make/rustdoc-scrape-examples-whitespace/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
deps := ex

-include ../rustdoc-scrape-examples-multiple/scrape.mk

all: scrape
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
struct Foo;
impl Foo {
fn bar() { foobar::ok(); }
}

fn main() {
Foo::bar();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// @has foobar/fn.ok.html '//*[@class="docblock scraped-example-list"]//code' ' '

pub fn ok() {}

0 comments on commit 3389792

Please sign in to comment.