diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs
index c129e54c0f28a..7a6626766d388 100644
--- a/src/librustdoc/html/markdown.rs
+++ b/src/librustdoc/html/markdown.rs
@@ -192,6 +192,7 @@ impl<'a, I: Iterator- >> Iterator for CodeBlocks<'_, 'a, I> {
fn next(&mut self) -> Option {
let event = self.inner.next();
let compile_fail;
+ let should_panic;
let ignore;
let edition;
if let Some(Event::Start(Tag::CodeBlock(kind))) = event {
@@ -205,6 +206,7 @@ impl<'a, I: Iterator
- >> 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 {
@@ -280,6 +282,8 @@ impl<'a, I: Iterator
- >> 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 {
@@ -295,6 +299,8 @@ impl<'a, I: Iterator
- >> Iterator for CodeBlocks<'_, 'a, I> {
" ignore"
} else if compile_fail {
" compile_fail"
+ } else if should_panic {
+ " should_panic"
} else if explicit_edition {
" edition "
} else {
@@ -314,6 +320,8 @@ impl<'a, I: Iterator
- >> Iterator for CodeBlocks<'_, 'a, I> {
" ignore"
} else if compile_fail {
" compile_fail"
+ } else if should_panic {
+ " should_panic"
} else if explicit_edition {
" edition "
} else {
diff --git a/src/librustdoc/html/static/rustdoc.css b/src/librustdoc/html/static/rustdoc.css
index 2cb3347135c1b..9c6dd25394db0 100644
--- a/src/librustdoc/html/static/rustdoc.css
+++ b/src/librustdoc/html/static/rustdoc.css
@@ -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;
}
diff --git a/src/librustdoc/html/static/themes/dark.css b/src/librustdoc/html/static/themes/dark.css
index a2986c7b927e2..41dcb5c24507c 100644
--- a/src/librustdoc/html/static/themes/dark.css
+++ b/src/librustdoc/html/static/themes/dark.css
@@ -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);
}
@@ -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);
}
diff --git a/src/librustdoc/html/static/themes/light.css b/src/librustdoc/html/static/themes/light.css
index be173d8eb46d3..386fe2398e63a 100644
--- a/src/librustdoc/html/static/themes/light.css
+++ b/src/librustdoc/html/static/themes/light.css
@@ -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);
}
@@ -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);
}
diff --git a/src/test/rustdoc/codeblock-title.rs b/src/test/rustdoc/codeblock-title.rs
index 2f77929c74e37..b59b21111b009 100644
--- a/src/test/rustdoc/codeblock-title.rs
+++ b/src/test/rustdoc/codeblock-title.rs
@@ -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
///
@@ -15,6 +16,10 @@
/// goo();
/// ```
///
+/// ```should_panic
+/// hoo();
+/// ```
+///
/// ```
/// let x = 0;
/// ```