Skip to content

Commit

Permalink
Auto merge of #84445 - jyn514:hidden, r=<try>
Browse files Browse the repository at this point in the history
rustdoc: Hide `#text` in doc-tests

Since `#![attr]` and `#[attr]` are the only valid syntax that start with `#`, we can just special case those two tokens.

Fixes #83284.
  • Loading branch information
bors committed Apr 23, 2021
2 parents 236580b + af6c320 commit 9a35232
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 6 deletions.
19 changes: 13 additions & 6 deletions src/librustdoc/html/markdown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -147,12 +147,19 @@ fn map_line(s: &str) -> Line<'_> {
let trimmed = s.trim();
if trimmed.starts_with("##") {
Line::Shown(Cow::Owned(s.replacen("##", "#", 1)))
} else if let Some(stripped) = trimmed.strip_prefix("# ") {
// # text
Line::Hidden(&stripped)
} else if trimmed == "#" {
// We cannot handle '#text' because it could be #[attr].
Line::Hidden("")
} else if trimmed.starts_with('#') {
let mut without_hash = trimmed[1..].trim_start();
if without_hash.starts_with('!') {
// #! text
without_hash = without_hash[1..].trim_start_matches(' ');
}
if without_hash.starts_with('[') {
// #[attr] or #![attr]
Line::Shown(Cow::Borrowed(s))
} else {
// #text
Line::Hidden(without_hash)
}
} else {
Line::Shown(Cow::Borrowed(s))
}
Expand Down
25 changes: 25 additions & 0 deletions src/test/rustdoc-ui/test-hidden.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// check-pass
// compile-flags:--test
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// normalize-stdout-test: "src/test/rustdoc-ui" -> "$$DIR"

/// ```
// If `const_err` becomes a hard error in the future, please replace this with another
// deny-by-default lint instead of removing it altogether
/// # ! [allow(const_err)]
/// const C: usize = 1/0;
///
/// # use std::path::PathBuf;
/// #use std::path::Path;
/// let x = Path::new("y.rs");
/// let x = PathBuf::from("y.rs");
///
/// #[cfg(FALSE)]
/// assert!(false);
///
/// # [cfg(FALSE)]
/// assert!(false);
/// ```
fn main() {
panic!();
}
6 changes: 6 additions & 0 deletions src/test/rustdoc-ui/test-hidden.stdout
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

running 1 test
test $DIR/test-hidden.rs - main (line 6) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME

0 comments on commit 9a35232

Please sign in to comment.