Added tooltip for should_panic code examples.

Previously, compile_fail and ignore code examples displayed a tooltip
indicating this in the documentation. This tooltip has now also been
added to should_panic examples.
This commit is contained in:
Jake Degen 2020-06-18 08:48:37 -04:00
parent e55d3f9c52
commit b805f2c4dc
5 changed files with 46 additions and 1 deletions

View File

@ -192,6 +192,7 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'_, 'a, I> {
fn next(&mut self) -> Option<Self::Item> { fn next(&mut self) -> Option<Self::Item> {
let event = self.inner.next(); let event = self.inner.next();
let compile_fail; let compile_fail;
let should_panic;
let ignore; let ignore;
let edition; let edition;
if let Some(Event::Start(Tag::CodeBlock(kind))) = event { if let Some(Event::Start(Tag::CodeBlock(kind))) = event {
@ -205,6 +206,7 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'_, 'a, I> {
return Some(Event::Start(Tag::CodeBlock(kind))); return Some(Event::Start(Tag::CodeBlock(kind)));
} }
compile_fail = parse_result.compile_fail; compile_fail = parse_result.compile_fail;
should_panic = parse_result.should_panic;
ignore = parse_result.ignore; ignore = parse_result.ignore;
edition = parse_result.edition; edition = parse_result.edition;
} else { } else {
@ -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")) Some(("This example is not tested".to_owned(), "ignore"))
} else if compile_fail { } else if compile_fail {
Some(("This example deliberately fails to compile".to_owned(), "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 { } else if explicit_edition {
Some((format!("This code runs with edition {}", edition), "edition")) Some((format!("This code runs with edition {}", edition), "edition"))
} else { } else {
@ -295,6 +299,8 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'_, 'a, I> {
" ignore" " ignore"
} else if compile_fail { } else if compile_fail {
" compile_fail" " compile_fail"
} else if should_panic {
" should_panic"
} else if explicit_edition { } else if explicit_edition {
" edition " " edition "
} else { } else {
@ -314,6 +320,8 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'_, 'a, I> {
" ignore" " ignore"
} else if compile_fail { } else if compile_fail {
" compile_fail" " compile_fail"
} else if should_panic {
" should_panic"
} else if explicit_edition { } else if explicit_edition {
" edition " " edition "
} else { } else {

View File

@ -1089,7 +1089,7 @@ h3 > .collapse-toggle, h4 > .collapse-toggle {
border-style: solid; border-style: solid;
} }
.tooltip.compile_fail, .tooltip.ignore { .tooltip.compile_fail, .tooltip.should_panic, .tooltip.ignore {
font-weight: bold; font-weight: bold;
font-size: 20px; font-size: 20px;
} }

View File

@ -283,6 +283,14 @@ pre.compile_fail:hover, .information:hover + pre.compile_fail {
border-left: 2px solid #f00; 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 { pre.ignore {
border-left: 2px solid rgba(255,142,0,.6); border-left: 2px solid rgba(255,142,0,.6);
} }
@ -299,6 +307,14 @@ pre.ignore:hover, .information:hover + pre.ignore {
color: #f00; color: #f00;
} }
.tooltip.should_panic {
color: rgba(255,0,0,.8);
}
.information > .should_panic:hover {
color: #f00;
}
.tooltip.ignore { .tooltip.ignore {
color: rgba(255,142,0,.6); color: rgba(255,142,0,.6);
} }

View File

@ -278,6 +278,14 @@ pre.compile_fail:hover, .information:hover + pre.compile_fail {
border-left: 2px solid #f00; 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 { pre.ignore {
border-left: 2px solid rgba(255,142,0,.6); border-left: 2px solid rgba(255,142,0,.6);
} }
@ -294,6 +302,14 @@ pre.ignore:hover, .information:hover + pre.ignore {
color: #f00; color: #f00;
} }
.tooltip.should_panic {
color: rgba(255,0,0,.5);
}
.information > .should_panic:hover {
color: #f00;
}
.tooltip.ignore { .tooltip.ignore {
color: rgba(255,142,0,.6); color: rgba(255,142,0,.6);
} }

View File

@ -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 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 ignore"]/span' "This example is not tested"
// @has foo/fn.bar.html '//*[@class="tooltip should_panic"]/span' "This example panics"
/// foo /// foo
/// ///
@ -15,6 +16,10 @@
/// goo(); /// goo();
/// ``` /// ```
/// ///
/// ```should_panic
/// hoo();
/// ```
///
/// ``` /// ```
/// let x = 0; /// let x = 0;
/// ``` /// ```