about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChristian Duerr <contact@christianduerr.com>2017-11-30 00:28:59 +0100
committerChristian Duerr <contact@christianduerr.com>2017-11-30 00:28:59 +0100
commit91a41069115c70f95509fadae70e67c0effbed93 (patch)
tree061cb95efaef802e49d4db127146322404fa7b6c
parent0a2e9ade83ff253bb489c63a95b1f499c5e0916f (diff)
downloadrust-91a41069115c70f95509fadae70e67c0effbed93.tar.gz
rust-91a41069115c70f95509fadae70e67c0effbed93.zip
Fix rustoc item summaries that are headers
Rustoc item summaries that are headers were not displayed at all because
they started with whitespace.

This PR fixes this and now removes the whitespace and then displays the
block.
-rw-r--r--src/librustdoc/html/render.rs4
-rw-r--r--src/test/rustdoc/issue-46377.rs13
2 files changed, 16 insertions, 1 deletions
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index cf557b1c661..41918dfd3c3 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -1819,7 +1819,9 @@ fn full_path(cx: &Context, item: &clean::Item) -> String {
 
 fn shorter<'a>(s: Option<&'a str>) -> String {
     match s {
-        Some(s) => s.lines().take_while(|line|{
+        Some(s) => s.lines()
+            .skip_while(|s| s.chars().all(|c| c.is_whitespace()))
+            .take_while(|line|{
             (*line).chars().any(|chr|{
                 !chr.is_whitespace()
             })
diff --git a/src/test/rustdoc/issue-46377.rs b/src/test/rustdoc/issue-46377.rs
new file mode 100644
index 00000000000..db8c7660df1
--- /dev/null
+++ b/src/test/rustdoc/issue-46377.rs
@@ -0,0 +1,13 @@
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// @has 'issue_46377/index.html' '//*[@class="docblock-short"]' 'Check out this struct!'
+/// # Check out this struct!
+pub struct SomeStruct;