From 3ce60e973139e1c44ad4bf67d26498c4e6c42d04 Mon Sep 17 00:00:00 2001 From: mcarton Date: Thu, 5 May 2016 21:42:59 +0200 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20warn=20in=20titles=20in=20DOC?= =?UTF-8?q?=5FMARKDOWN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/doc.rs | 6 ++++++ tests/compile-fail/doc.rs | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/doc.rs b/src/doc.rs index 00c3e4398ea..cf32c1731fa 100644 --- a/src/doc.rs +++ b/src/doc.rs @@ -126,6 +126,7 @@ pub fn check_doc(cx: &EarlyContext, valid_idents: &[String], doc: &str, span: Sp span } + let mut new_line = true; let len = doc.len(); let mut chars = doc.char_indices().peekable(); let mut current_word_begin = 0; @@ -133,6 +134,9 @@ pub fn check_doc(cx: &EarlyContext, valid_idents: &[String], doc: &str, span: Sp match chars.next() { Some((_, c)) => { match c { + '#' if new_line => { // don’t warn on titles + current_word_begin = jump_to!(chars, '\n', len); + } '`' => { current_word_begin = jump_to!(chars, '`', len); } @@ -182,6 +186,8 @@ pub fn check_doc(cx: &EarlyContext, valid_idents: &[String], doc: &str, span: Sp current_word_begin = jump_to!(@next_char, chars, len); } } + + new_line = c == '\n' || (new_line && c.is_whitespace()); } None => break, } diff --git a/tests/compile-fail/doc.rs b/tests/compile-fail/doc.rs index 0c8d1d50532..eca9d79354c 100755 --- a/tests/compile-fail/doc.rs +++ b/tests/compile-fail/doc.rs @@ -108,6 +108,18 @@ fn main() { test_units(); } +/// ## CamelCaseThing +/// Talks about `CamelCaseThing`. Titles should be ignored, see issue #897. +/// +/// # CamelCaseThing +/// +/// Not a title #897 CamelCaseThing +//~^ ERROR: you should put `CamelCaseThing` between ticks +/// be_sure_we_got_to_the_end_of_it +//~^ ERROR: you should put `be_sure_we_got_to_the_end_of_it` between ticks +fn issue897() { +} + /// I am confused by brackets? (`x_y`) /// I am confused by brackets? (foo `x_y`) /// I am confused by brackets? (`x_y` foo)