Skip to content

Commit

Permalink
Rollup merge of rust-lang#73476 - JakobDegen:should_panic_rustdoc, r=…
Browse files Browse the repository at this point in the history
…GuillaumeGomez

Added tooltip for should_panic code examples

This change adds a tooltip to the documentation for `should_panic` examples. It currently displays identically to `compile_fail` examples, save for the changed text. It may be helpful to change the color that this displays in to make it visually more clear what is going on, but I'm unsure if additional colors wouldn't just be distracting.

I brought this [up on internals](https://internals.rust-lang.org/t/indicating-that-an-example-is-should-panic-in-docs/12544) a few days ago, and there seemed to be a mild positive response to it.
  • Loading branch information
Manishearth authored Jun 18, 2020
2 parents f15b346 + 721facf commit 6c53a0c
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/librustdoc/html/markdown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'_, 'a, I> {
fn next(&mut self) -> Option<Self::Item> {
let event = self.inner.next();
let compile_fail;
let should_panic;
let ignore;
let edition;
if let Some(Event::Start(Tag::CodeBlock(kind))) = event {
Expand All @@ -205,6 +206,7 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'_, 'a, I> {
return Some(Event::Start(Tag::CodeBlock(kind)));
}
compile_fail = parse_result.compile_fail;
should_panic = parse_result.should_panic;
ignore = parse_result.ignore;
edition = parse_result.edition;
} else {
Expand Down Expand Up @@ -280,6 +282,8 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'_, 'a, I> {
Some(("This example is not tested".to_owned(), "ignore"))
} else if compile_fail {
Some(("This example deliberately fails to compile".to_owned(), "compile_fail"))
} else if should_panic {
Some(("This example panics".to_owned(), "should_panic"))
} else if explicit_edition {
Some((format!("This code runs with edition {}", edition), "edition"))
} else {
Expand All @@ -295,6 +299,8 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'_, 'a, I> {
" ignore"
} else if compile_fail {
" compile_fail"
} else if should_panic {
" should_panic"
} else if explicit_edition {
" edition "
} else {
Expand All @@ -314,6 +320,8 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'_, 'a, I> {
" ignore"
} else if compile_fail {
" compile_fail"
} else if should_panic {
" should_panic"
} else if explicit_edition {
" edition "
} else {
Expand Down
2 changes: 1 addition & 1 deletion src/librustdoc/html/static/rustdoc.css
Original file line number Diff line number Diff line change
Expand Up @@ -1089,7 +1089,7 @@ h3 > .collapse-toggle, h4 > .collapse-toggle {
border-style: solid;
}

.tooltip.compile_fail, .tooltip.ignore {
.tooltip.compile_fail, .tooltip.should_panic, .tooltip.ignore {
font-weight: bold;
font-size: 20px;
}
Expand Down
16 changes: 16 additions & 0 deletions src/librustdoc/html/static/themes/dark.css
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,14 @@ pre.compile_fail:hover, .information:hover + pre.compile_fail {
border-left: 2px solid #f00;
}

pre.should_panic {
border-left: 2px solid rgba(255,0,0,.8);
}

pre.should_panic:hover, .information:hover + pre.should_panic {
border-left: 2px solid #f00;
}

pre.ignore {
border-left: 2px solid rgba(255,142,0,.6);
}
Expand All @@ -299,6 +307,14 @@ pre.ignore:hover, .information:hover + pre.ignore {
color: #f00;
}

.tooltip.should_panic {
color: rgba(255,0,0,.8);
}

.information > .should_panic:hover {
color: #f00;
}

.tooltip.ignore {
color: rgba(255,142,0,.6);
}
Expand Down
16 changes: 16 additions & 0 deletions src/librustdoc/html/static/themes/light.css
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,14 @@ pre.compile_fail:hover, .information:hover + pre.compile_fail {
border-left: 2px solid #f00;
}

pre.should_panic {
border-left: 2px solid rgba(255,0,0,.5);
}

pre.should_panic:hover, .information:hover + pre.should_panic {
border-left: 2px solid #f00;
}

pre.ignore {
border-left: 2px solid rgba(255,142,0,.6);
}
Expand All @@ -294,6 +302,14 @@ pre.ignore:hover, .information:hover + pre.ignore {
color: #f00;
}

.tooltip.should_panic {
color: rgba(255,0,0,.5);
}

.information > .should_panic:hover {
color: #f00;
}

.tooltip.ignore {
color: rgba(255,142,0,.6);
}
Expand Down
5 changes: 5 additions & 0 deletions src/test/rustdoc/codeblock-title.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

// @has foo/fn.bar.html '//*[@class="tooltip compile_fail"]/span' "This example deliberately fails to compile"
// @has foo/fn.bar.html '//*[@class="tooltip ignore"]/span' "This example is not tested"
// @has foo/fn.bar.html '//*[@class="tooltip should_panic"]/span' "This example panics"

/// foo
///
Expand All @@ -15,6 +16,10 @@
/// goo();
/// ```
///
/// ```should_panic
/// hoo();
/// ```
///
/// ```
/// let x = 0;
/// ```
Expand Down

0 comments on commit 6c53a0c

Please sign in to comment.