From 54a50feda96e4eec4c58b0bf408e0f8c44e49856 Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Sun, 27 Nov 2022 17:41:08 -0500 Subject: [PATCH] give a hard error temporarily --- src/librustdoc/html/render/context.rs | 18 +++++++++--------- src/librustdoc/lib.rs | 2 +- .../{rustdoc => rustdoc-ui}/broken-link.rs | 1 + src/test/rustdoc-ui/broken-link.stderr | 5 +++++ 4 files changed, 16 insertions(+), 10 deletions(-) rename src/test/{rustdoc => rustdoc-ui}/broken-link.rs (53%) create mode 100644 src/test/rustdoc-ui/broken-link.stderr diff --git a/src/librustdoc/html/render/context.rs b/src/librustdoc/html/render/context.rs index 726949457e3d6..47e981267b61f 100644 --- a/src/librustdoc/html/render/context.rs +++ b/src/librustdoc/html/render/context.rs @@ -6,7 +6,7 @@ use std::rc::Rc; use std::sync::mpsc::{channel, Receiver}; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; -use rustc_hir::HirId; +// use rustc_hir::HirId; use rustc_hir::def_id::{DefId, LOCAL_CRATE}; use rustc_middle::ty::TyCtxt; use rustc_session::Session; @@ -34,7 +34,7 @@ use crate::html::format::{join_with_double_colon, Buffer}; use crate::html::markdown::{self, plain_text_summary, ErrorCodes, IdMap}; use crate::html::url_parts_builder::UrlPartsBuilder; use crate::html::{layout, sources, static_files}; -use crate::lint::BROKEN_HTML_LINKS; +// use crate::lint::BROKEN_HTML_LINKS; use crate::scrape_examples::AllCallLocations; use crate::try_err; @@ -176,14 +176,14 @@ impl<'tcx> Context<'tcx> { let path = self.dst.canonicalize().unwrap(); let errors: Vec<_> = unavailable_urls(&path, &CheckContext::default()).collect(); - let tcx = self.tcx(); + // let tcx = self.tcx(); for err in errors { - // self.sess().struct_warn(&err.to_string().replace('\t', " ")).emit(); - let msg = err.to_string().replace('\t', " "); - // TODO: map files back to items - let hir_id: HirId = todo!(); - let span = tcx.def_span(tcx.hir().local_def_id(hir_id)); - self.tcx().struct_span_lint_hir(BROKEN_HTML_LINKS, hir_id, span, msg, |err| err); + self.sess().struct_err(&err.to_string().replace('\t', " ")).emit(); + // let msg = err.to_string().replace('\t', " "); + // // TODO: map files back to items + // let hir_id: HirId = todo!(); + // let span = tcx.def_span(tcx.hir().local_def_id(hir_id)); + // self.tcx().struct_span_lint_hir(BROKEN_HTML_LINKS, hir_id, span, msg, |err| err); } } diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 1a84ec650474d..faca88d71c581 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -689,7 +689,7 @@ fn run_renderer<'tcx, T: formats::FormatRenderer<'tcx>>( tcx: TyCtxt<'tcx>, ) -> MainResult { match formats::run_format::(krate, renderopts, cache, tcx) { - Ok(_) => Ok(()), + Ok(_) => tcx.sess.has_errors().map_or(Ok(()), Err), Err(e) => { let mut msg = tcx.sess.struct_err(&format!("couldn't generate documentation: {}", e.error)); diff --git a/src/test/rustdoc/broken-link.rs b/src/test/rustdoc-ui/broken-link.rs similarity index 53% rename from src/test/rustdoc/broken-link.rs rename to src/test/rustdoc-ui/broken-link.rs index 5b3b2ee2ada8d..2aacdbf0d1dd4 100644 --- a/src/test/rustdoc/broken-link.rs +++ b/src/test/rustdoc-ui/broken-link.rs @@ -1 +1,2 @@ +// error-pattern: invalid urls //! [broken link](./not-here.html) diff --git a/src/test/rustdoc-ui/broken-link.stderr b/src/test/rustdoc-ui/broken-link.stderr new file mode 100644 index 0000000000000..448e1dcd218e9 --- /dev/null +++ b/src/test/rustdoc-ui/broken-link.stderr @@ -0,0 +1,5 @@ +error: Found invalid urls in $TEST_BUILD_DIR/broken-link/broken_link/index.html: + Linked file at path $TEST_BUILD_DIR/broken-link/broken_link/not-here.html does not exist! + +error: aborting due to previous error +