]> git.lizzy.rs Git - rust.git/commitdiff
Provide warnings for invalid code blocks in markdown files
authorMark Rousskov <mark.simulacrum@gmail.com>
Sat, 21 Jul 2018 22:30:02 +0000 (16:30 -0600)
committerMark Rousskov <mark.simulacrum@gmail.com>
Tue, 31 Jul 2018 17:37:21 +0000 (11:37 -0600)
Previously we would only warn on Rust code but we can also do so when
testing markdown (the diag::Handler is available).

src/librustdoc/html/markdown.rs
src/librustdoc/markdown.rs
src/librustdoc/test.rs

index d01745f4a46fad30f1dc6c1bedd893e50f2e57f9..0774ce34718fba7e4f78da7fc5da6bad051f98f9 100644 (file)
@@ -27,7 +27,6 @@
 
 #![allow(non_camel_case_types)]
 
-use rustc::session;
 use std::cell::RefCell;
 use std::collections::{HashMap, VecDeque};
 use std::default::Default;
@@ -37,6 +36,7 @@
 use std::str;
 use syntax::feature_gate::UnstableFeatures;
 use syntax::codemap::Span;
+use errors;
 
 use html::render::derive_id;
 use html::toc::TocBuilder;
@@ -470,7 +470,7 @@ fn next(&mut self) -> Option<Self::Item> {
 }
 
 pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector, position: Span,
-                          sess: Option<&session::Session>) {
+                          handler: &errors::Handler) {
     tests.set_position(position);
 
     let is_nightly = UnstableFeatures::from_environment().is_nightly_build();
@@ -521,9 +521,7 @@ pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector, position: Sp
                                    line, filename, block_info.allow_fail);
                     prev_offset = offset;
                 } else {
-                    if let Some(ref sess) = sess {
-                        sess.span_warn(position, "invalid start of a new code block");
-                    }
+                    handler.span_warn(position, "invalid start of a new code block");
                     break;
                 }
             }
index 36a8fc94dba2f377cbc5daa903dc86c33f4daa5d..82489e9fbdbf47e15da0044575f0a3a2d1629bf5 100644 (file)
@@ -156,7 +156,7 @@ pub fn test(input: &str, cfgs: Vec<String>, libs: SearchPaths, externs: Externs,
                                        true, opts, maybe_sysroot, None,
                                        Some(PathBuf::from(input)),
                                        linker, edition);
-    find_testable_code(&input_str, &mut collector, DUMMY_SP, None);
+    find_testable_code(&input_str, &mut collector, DUMMY_SP, diag);
     test_args.insert(0, "rustdoctest".to_string());
     testing::test_main(&test_args, collector.tests,
                        testing::Options::new().display_output(display_warnings));
index 2966b9e9819b4771724bf3731f6fd9fa7194ad37..a6667e177285890cb8ad1c317278031525cf0897 100644 (file)
@@ -692,7 +692,7 @@ fn visit_testable<F: FnOnce(&mut Self)>(&mut self,
             markdown::find_testable_code(&doc,
                                          self.collector,
                                          attrs.span.unwrap_or(DUMMY_SP),
-                                         Some(self.sess));
+                                         self.sess.diagnostic());
         }
 
         nested(self);