about summary refs log tree commit diff
path: root/src/librustdoc/html
diff options
context:
space:
mode:
authorMark Rousskov <mark.simulacrum@gmail.com>2018-07-21 17:15:25 -0600
committerMark Rousskov <mark.simulacrum@gmail.com>2018-07-31 11:37:21 -0600
commit03e34f8f816c2594238585bdca39716f4050cb69 (patch)
treedd3a63e35155a04fa7729dca7b8e60d8fb29e924 /src/librustdoc/html
parentde5cebdba58770ab555476bc4cdf23d89bd0c3ea (diff)
downloadrust-03e34f8f816c2594238585bdca39716f4050cb69.tar.gz
rust-03e34f8f816c2594238585bdca39716f4050cb69.zip
Remove dependency on error handling from find_testable_code
Diffstat (limited to 'src/librustdoc/html')
-rw-r--r--src/librustdoc/html/markdown.rs21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs
index c73e6d4b355..54fd041fb00 100644
--- a/src/librustdoc/html/markdown.rs
+++ b/src/librustdoc/html/markdown.rs
@@ -34,10 +34,8 @@ use std::fmt::{self, Write};
 use std::borrow::Cow;
 use std::ops::Range;
 use std::str;
-use syntax::feature_gate::UnstableFeatures;
-use syntax::codemap::Span;
-use errors;
 
+use syntax::feature_gate::UnstableFeatures;
 use html::render::derive_id;
 use html::toc::TocBuilder;
 use html::highlight;
@@ -469,10 +467,17 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for Footnotes<'a, I> {
     }
 }
 
-pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector, position: Span,
-                          handler: &errors::Handler) {
-    tests.set_position(position);
+pub struct TestableCodeError(());
+
+impl fmt::Display for TestableCodeError {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        write!(f, "invalid start of a new code block")
+    }
+}
 
+pub fn find_testable_code(
+    doc: &str, tests: &mut test::Collector
+) -> Result<(), TestableCodeError> {
     let is_nightly = UnstableFeatures::from_environment().is_nightly_build();
     let mut parser = Parser::new(doc);
     let mut prev_offset = 0;
@@ -516,8 +521,7 @@ pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector, position: Sp
                     tests.add_test(text, block_info, line);
                     prev_offset = offset;
                 } else {
-                    handler.span_warn(position, "invalid start of a new code block");
-                    break;
+                    return Err(TestableCodeError(()));
                 }
             }
             Event::Start(Tag::Header(level)) => {
@@ -535,6 +539,7 @@ pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector, position: Sp
             _ => {}
         }
     }
+    Ok(())
 }
 
 #[derive(Eq, PartialEq, Clone, Debug)]