Skip to content

Commit 0a8441f

Browse files
authored
Rollup merge of rust-lang#82993 - camelid:source-use-diag, r=jyn514
rustdoc: Use diagnostics for error when including sources This error probably almost never happens, but we should still use the diagnostic infrastructure. My guess is that the error was added back before rustdoc used the rustc diagnostic infrastructure (it was all `println!` and `eprintln!` back then!) and since it likely rarely occurs and this code doesn't change that much, no one thought to transition it to using diagnostics. Note that the old error was actually a warning (it didn't stop the rest of doc building). It seems very unlikely that this would fail without the rest of the doc build failing, so it makes more sense for it to be a hard error. The error looks like this: error: failed to render source code for `src/test/rustdoc/smart-punct.rs`: "bar": foo --> src/test/rustdoc/smart-punct.rs:3:1 | 3 | / #![crate_name = "foo"] 4 | | 5 | | //! This is the "start" of the 'document'! How'd you know that "it's" ... 6 | | //! ... | 22 | | //! I say "don't smart-punct me -- please!" 23 | | //! ``` | |_______^ I wasn't sure how to trigger the error, so to create that message I temporarily made rustdoc always emit it. That's also why it says "bar" and "foo" instead of a real error message. Note that the span of the diagnostic starts at line 3 because line 1 of that file is a (non-doc) comment and line 2 is a blank line.
2 parents c572f14 + 3d8ce0a commit 0a8441f

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

src/librustdoc/html/sources.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,10 @@ impl DocFolder for SourceCollector<'_, '_> {
5454
self.scx.include_sources = match self.emit_source(&filename) {
5555
Ok(()) => true,
5656
Err(e) => {
57-
println!(
58-
"warning: source code was requested to be rendered, \
59-
but processing `{}` had an error: {}",
60-
filename, e
57+
self.scx.tcx.sess.span_err(
58+
item.span.inner(),
59+
&format!("failed to render source code for `{}`: {}", filename, e),
6160
);
62-
println!(" skipping rendering of source code");
6361
false
6462
}
6563
};

0 commit comments

Comments
 (0)