Auto merge of #84703 - GuillaumeGomez:cleanup-dom, r=jsha
Clean up dom The commits come from #84480. They were errors reported by the `tidy` script that we will use to ensure that the HTML generated by rustdoc is valid. I checked carefully that there were no difference so in principle it should be exactly the same rendering but a double-check would be very appreciated in case I missed something. Extra note: `<h4>` and some `<h3>` tags were replaced by `<div>` because they're not supposed to contain tags as they currently do. r? `@jsha`
This commit is contained in:
commit
da865095cf
@ -235,6 +235,7 @@ impl<'a> Page<'a> {
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="0;URL={url}">
|
||||
<title>Redirection</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Redirecting to <a href="{url}">{url}</a>...</p>
|
||||
|
@ -1369,7 +1369,11 @@ fn doc_impl_item(
|
||||
})
|
||||
})
|
||||
.map(|item| format!("{}.{}", item.type_(), name));
|
||||
write!(w, "<h4 id=\"{}\" class=\"{}{}\">", id, item_type, in_trait_class,);
|
||||
write!(
|
||||
w,
|
||||
"<div id=\"{}\" class=\"{}{} has-srclink\">",
|
||||
id, item_type, in_trait_class,
|
||||
);
|
||||
w.write_str("<code>");
|
||||
render_assoc_item(
|
||||
w,
|
||||
@ -1388,13 +1392,17 @@ fn doc_impl_item(
|
||||
);
|
||||
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
||||
write_srclink(cx, item, w);
|
||||
w.write_str("</h4>");
|
||||
w.write_str("</div>");
|
||||
}
|
||||
}
|
||||
clean::TypedefItem(ref tydef, _) => {
|
||||
let source_id = format!("{}.{}", ItemType::AssocType, name);
|
||||
let id = cx.derive_id(source_id.clone());
|
||||
write!(w, "<h4 id=\"{}\" class=\"{}{}\"><code>", id, item_type, in_trait_class);
|
||||
write!(
|
||||
w,
|
||||
"<div id=\"{}\" class=\"{}{} has-srclink\"><code>",
|
||||
id, item_type, in_trait_class
|
||||
);
|
||||
assoc_type(
|
||||
w,
|
||||
item,
|
||||
@ -1406,12 +1414,16 @@ fn doc_impl_item(
|
||||
);
|
||||
w.write_str("</code>");
|
||||
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
||||
w.write_str("</h4>");
|
||||
w.write_str("</div>");
|
||||
}
|
||||
clean::AssocConstItem(ref ty, ref default) => {
|
||||
let source_id = format!("{}.{}", item_type, name);
|
||||
let id = cx.derive_id(source_id.clone());
|
||||
write!(w, "<h4 id=\"{}\" class=\"{}{}\"><code>", id, item_type, in_trait_class);
|
||||
write!(
|
||||
w,
|
||||
"<div id=\"{}\" class=\"{}{} has-srclink\"><code>",
|
||||
id, item_type, in_trait_class
|
||||
);
|
||||
assoc_const(
|
||||
w,
|
||||
item,
|
||||
@ -1431,12 +1443,12 @@ fn doc_impl_item(
|
||||
);
|
||||
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
||||
write_srclink(cx, item, w);
|
||||
w.write_str("</h4>");
|
||||
w.write_str("</div>");
|
||||
}
|
||||
clean::AssocTypeItem(ref bounds, ref default) => {
|
||||
let source_id = format!("{}.{}", item_type, name);
|
||||
let id = cx.derive_id(source_id.clone());
|
||||
write!(w, "<h4 id=\"{}\" class=\"{}{}\"><code>", id, item_type, in_trait_class);
|
||||
write!(w, "<div id=\"{}\" class=\"{}{}\"><code>", id, item_type, in_trait_class,);
|
||||
assoc_type(
|
||||
w,
|
||||
item,
|
||||
@ -1448,7 +1460,7 @@ fn doc_impl_item(
|
||||
);
|
||||
w.write_str("</code>");
|
||||
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
||||
w.write_str("</h4>");
|
||||
w.write_str("</div>");
|
||||
}
|
||||
clean::StrippedItem(..) => return,
|
||||
_ => panic!("can't make docs for trait item with name {:?}", item.name),
|
||||
@ -1577,7 +1589,8 @@ fn render_default_items(
|
||||
if let Some(use_absolute) = use_absolute {
|
||||
write!(
|
||||
w,
|
||||
"{}<h3 id=\"{}\" class=\"impl\"{}><code class=\"in-band\">",
|
||||
"{}<div id=\"{}\" class=\"impl has-srclink\"{}>\
|
||||
<code class=\"in-band\">",
|
||||
open_details(&mut close_tags, is_implementing_trait),
|
||||
id,
|
||||
aliases
|
||||
@ -1604,7 +1617,8 @@ fn render_default_items(
|
||||
} else {
|
||||
write!(
|
||||
w,
|
||||
"{}<h3 id=\"{}\" class=\"impl\"{}><code class=\"in-band\">{}</code>",
|
||||
"{}<div id=\"{}\" class=\"impl has-srclink\"{}>\
|
||||
<code class=\"in-band\">{}</code>",
|
||||
open_details(&mut close_tags, is_implementing_trait),
|
||||
id,
|
||||
aliases,
|
||||
@ -1621,9 +1635,9 @@ fn render_default_items(
|
||||
);
|
||||
write_srclink(cx, &i.impl_item, w);
|
||||
if !toggled {
|
||||
w.write_str("</h3>");
|
||||
w.write_str("</div>");
|
||||
} else {
|
||||
w.write_str("</h3></summary>");
|
||||
w.write_str("</div></summary>");
|
||||
}
|
||||
|
||||
if trait_.is_some() {
|
||||
@ -1649,10 +1663,12 @@ fn render_default_items(
|
||||
);
|
||||
}
|
||||
}
|
||||
w.write_str("<div class=\"impl-items\">");
|
||||
w.push_buffer(default_impl_items);
|
||||
w.push_buffer(impl_items);
|
||||
close_tags.insert_str(0, "</div>");
|
||||
if !default_impl_items.is_empty() || !impl_items.is_empty() {
|
||||
w.write_str("<div class=\"impl-items\">");
|
||||
w.push_buffer(default_impl_items);
|
||||
w.push_buffer(impl_items);
|
||||
close_tags.insert_str(0, "</div>");
|
||||
}
|
||||
w.write_str(&close_tags);
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@ pub(super) fn print_item(cx: &Context<'_>, item: &clean::Item, buf: &mut Buffer,
|
||||
);
|
||||
}
|
||||
}
|
||||
write!(buf, "<a class=\"{}\" href=\"\">{}</a>", item.type_(), item.name.as_ref().unwrap());
|
||||
write!(buf, "<a class=\"{}\" href=\"#\">{}</a>", item.type_(), item.name.as_ref().unwrap());
|
||||
write!(
|
||||
buf,
|
||||
"<button id=\"copy-path\" onclick=\"copy_path(this)\">\
|
||||
@ -585,12 +585,12 @@ fn trait_item(w: &mut Buffer, cx: &Context<'_>, m: &clean::Item, t: &clean::Item
|
||||
if toggled {
|
||||
write!(w, "<details class=\"rustdoc-toggle\" open><summary>");
|
||||
}
|
||||
write!(w, "<h3 id=\"{id}\" class=\"method\"><code>", id = id);
|
||||
write!(w, "<div id=\"{}\" class=\"method has-srclink\"><code>", id);
|
||||
render_assoc_item(w, m, AssocItemLink::Anchor(Some(&id)), ItemType::Impl, cx);
|
||||
w.write_str("</code>");
|
||||
render_stability_since(w, m, t, cx.tcx());
|
||||
write_srclink(cx, m, w);
|
||||
w.write_str("</h3>");
|
||||
w.write_str("</div>");
|
||||
if toggled {
|
||||
write!(w, "</summary>");
|
||||
w.push_buffer(content);
|
||||
|
@ -117,8 +117,7 @@ h2 {
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
h1, h2, h3:not(.impl):not(.method):not(.type):not(.tymethod):not(.notable),
|
||||
h4:not(.method):not(.type):not(.tymethod):not(.associatedconstant):not(.associatedtype) {
|
||||
h1, h2, h3, h4 {
|
||||
font-weight: 500;
|
||||
margin: 20px 0 15px 0;
|
||||
padding-bottom: 6px;
|
||||
@ -135,30 +134,38 @@ h1.fqn {
|
||||
h1.fqn > .in-band > a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
h2, h3:not(.impl):not(.method):not(.type):not(.tymethod),
|
||||
h4:not(.method):not(.type):not(.tymethod):not(.associatedconstant):not(.associatedtype) {
|
||||
h2, h3, h4 {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
h3.impl, h3.method, h4.method, h3.type, h4.type, h4.associatedconstant, h4.associatedtype {
|
||||
.impl, .method,
|
||||
.type, .associatedconstant,
|
||||
.associatedtype {
|
||||
flex-basis: 100%;
|
||||
font-weight: 600;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 10px;
|
||||
position: relative;
|
||||
}
|
||||
h3.impl, h3.method, h4.method.trait-impl, h3.type,
|
||||
h4.type.trait-impl, h4.associatedconstant.trait-impl, h4.associatedtype.trait-impl {
|
||||
.impl, .method.trait-impl,
|
||||
.type.trait-impl,
|
||||
.associatedconstant.trait-impl,
|
||||
.associatedtype.trait-impl {
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
div.impl-items > div {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4,
|
||||
.sidebar, a.source, .search-input, .search-results .result-name,
|
||||
.content table td:first-child > a,
|
||||
div.item-list .out-of-band,
|
||||
div.item-list .out-of-band, span.since,
|
||||
#source-sidebar, #sidebar-toggle,
|
||||
details.rustdoc-toggle > summary::before,
|
||||
details.undocumented > summary::before,
|
||||
.content ul.crate a.crate,
|
||||
div.impl-items > div:not(.docblock):not(.item-info),
|
||||
.content ul.crate a.crate, a.srclink,
|
||||
/* This selector is for the items listed in the "all items" page. */
|
||||
#main > ul.docblock > li > a {
|
||||
font-family: "Fira Sans", Arial, sans-serif;
|
||||
@ -313,8 +320,6 @@ nav.sub {
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
.block h2, .block h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
.block ul, .block li {
|
||||
@ -462,15 +467,7 @@ nav.sub {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h3.impl > .out-of-band {
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
h4.method > .out-of-band {
|
||||
font-size: 19px;
|
||||
}
|
||||
|
||||
h4 > code, h3 > code, .invisible > code {
|
||||
.method > code, .trait-impl > code, .invisible > code {
|
||||
max-width: calc(100% - 41px);
|
||||
display: block;
|
||||
}
|
||||
@ -543,7 +540,7 @@ h4 > code, h3 > code, .invisible > code {
|
||||
}
|
||||
.content .multi-column li { width: 100%; display: inline-block; }
|
||||
|
||||
.content .method {
|
||||
.content > .methods > .method {
|
||||
font-size: 1em;
|
||||
position: relative;
|
||||
}
|
||||
@ -555,7 +552,7 @@ h4 > code, h3 > code, .invisible > code {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
.content .methods > div:not(.notable-traits):not(.methods) {
|
||||
.content .methods > div:not(.notable-traits):not(.method) {
|
||||
margin-left: 40px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
@ -564,9 +561,6 @@ h4 > code, h3 > code, .invisible > code {
|
||||
margin-left: 20px;
|
||||
margin-top: -34px;
|
||||
}
|
||||
.content .docblock > .impl-items > h4 {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.content .docblock >.impl-items .table-display {
|
||||
margin: 0;
|
||||
}
|
||||
@ -688,7 +682,8 @@ a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.invisible > .srclink, h4 > code + .srclink, h3 > code + .srclink {
|
||||
.invisible > .srclink,
|
||||
.method > code + .srclink {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
@ -923,7 +918,7 @@ body.blur > :not(#help) {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.impl-items h4, h4.impl, h3.impl, .methods h3 {
|
||||
.has-srclink {
|
||||
display: flex;
|
||||
flex-basis: 100%;
|
||||
font-size: 16px;
|
||||
@ -1134,6 +1129,13 @@ a.test-arrow:hover{
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.notable-traits .notable {
|
||||
margin: 0;
|
||||
margin-bottom: 13px;
|
||||
font-size: 19px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.notable-traits .docblock code.content{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@ -1197,12 +1199,6 @@ pre.rust {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
h4 > .notable-traits {
|
||||
position: absolute;
|
||||
left: -44px;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
#all-types {
|
||||
text-align: center;
|
||||
border: 1px solid;
|
||||
@ -1316,14 +1312,6 @@ h4 > .notable-traits {
|
||||
border-top: 1px solid;
|
||||
}
|
||||
|
||||
|
||||
|
||||
h3.notable {
|
||||
margin: 0;
|
||||
margin-bottom: 13px;
|
||||
font-size: 19px;
|
||||
}
|
||||
|
||||
kbd {
|
||||
display: inline-block;
|
||||
padding: 3px 5px;
|
||||
@ -1615,10 +1603,6 @@ details.undocumented[open] > summary::before {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.content h4 > .out-of-band {
|
||||
position: inherit;
|
||||
}
|
||||
|
||||
#search {
|
||||
margin-left: 0;
|
||||
}
|
||||
@ -1638,7 +1622,7 @@ details.undocumented[open] > summary::before {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
h4 > .notable-traits {
|
||||
.notable-traits {
|
||||
position: absolute;
|
||||
left: -22px;
|
||||
top: 24px;
|
||||
|
@ -10,8 +10,7 @@ body {
|
||||
color: #c5c5c5;
|
||||
}
|
||||
|
||||
h1, h2, h3:not(.impl):not(.method):not(.type):not(.tymethod),
|
||||
h4:not(.method):not(.type):not(.tymethod) {
|
||||
h1, h2, h3, h4 {
|
||||
color: white;
|
||||
}
|
||||
h1.fqn {
|
||||
@ -20,10 +19,10 @@ h1.fqn {
|
||||
h1.fqn a {
|
||||
color: #fff;
|
||||
}
|
||||
h2, h3:not(.impl):not(.method):not(.type):not(.tymethod) {
|
||||
h2, h3, h4 {
|
||||
border-bottom-color: #5c6773;
|
||||
}
|
||||
h4:not(.method):not(.type):not(.tymethod):not(.associatedconstant) {
|
||||
h4 {
|
||||
border: none;
|
||||
}
|
||||
|
||||
@ -407,6 +406,10 @@ pre.ignore:hover, .information:hover + pre.ignore {
|
||||
border-color: #5c6773;
|
||||
}
|
||||
|
||||
.notable-traits-tooltiptext .notable {
|
||||
border-bottom-color: #5c6773;
|
||||
}
|
||||
|
||||
#titles > button.selected {
|
||||
background-color: #141920 !important;
|
||||
border-bottom: 1px solid #ffb44c !important;
|
||||
|
@ -3,15 +3,13 @@ body {
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
h1, h2, h3:not(.impl):not(.method):not(.type):not(.tymethod),
|
||||
h4:not(.method):not(.type):not(.tymethod) {
|
||||
h1, h2, h3, h4 {
|
||||
color: #ddd;
|
||||
}
|
||||
h1.fqn {
|
||||
border-bottom-color: #d2d2d2;
|
||||
}
|
||||
h2, h3:not(.impl):not(.method):not(.type):not(.tymethod),
|
||||
h4:not(.method):not(.type):not(.tymethod) {
|
||||
h2, h3, h4 {
|
||||
border-bottom-color: #d2d2d2;
|
||||
}
|
||||
|
||||
@ -356,6 +354,10 @@ pre.ignore:hover, .information:hover + pre.ignore {
|
||||
border-color: #777;
|
||||
}
|
||||
|
||||
.notable-traits-tooltiptext .notable {
|
||||
border-bottom-color: #d2d2d2;
|
||||
}
|
||||
|
||||
#titles > button:not(.selected) {
|
||||
background-color: #252525;
|
||||
border-top-color: #252525;
|
||||
|
@ -5,15 +5,13 @@ body {
|
||||
color: black;
|
||||
}
|
||||
|
||||
h1, h2, h3:not(.impl):not(.method):not(.type):not(.tymethod),
|
||||
h4:not(.method):not(.type):not(.tymethod) {
|
||||
h1, h2, h3, h4 {
|
||||
color: black;
|
||||
}
|
||||
h1.fqn {
|
||||
border-bottom-color: #D5D5D5;
|
||||
}
|
||||
h2, h3:not(.impl):not(.method):not(.type):not(.tymethod),
|
||||
h4:not(.method):not(.type):not(.tymethod) {
|
||||
h2, h3, h4 {
|
||||
border-bottom-color: #DDDDDD;
|
||||
}
|
||||
|
||||
@ -348,6 +346,10 @@ pre.ignore:hover, .information:hover + pre.ignore {
|
||||
border-color: #999;
|
||||
}
|
||||
|
||||
.notable-traits-tooltiptext .notable {
|
||||
border-bottom-color: #DDDDDD;
|
||||
}
|
||||
|
||||
#titles > button:not(.selected) {
|
||||
background-color: #e6e6e6;
|
||||
border-top-color: #e6e6e6;
|
||||
|
@ -77,12 +77,12 @@ struct AsyncFdReadyGuard<'a, T> { x: &'a T }
|
||||
|
||||
impl Foo {
|
||||
// @has async_fn/struct.Foo.html
|
||||
// @has - '//h4[@class="method"]' 'pub async fn complicated_lifetimes( &self, context: &impl Bar) -> impl Iterator<Item = &usize>'
|
||||
// @has - '//div[@class="method has-srclink"]' 'pub async fn complicated_lifetimes( &self, context: &impl Bar) -> impl Iterator<Item = &usize>'
|
||||
pub async fn complicated_lifetimes(&self, context: &impl Bar) -> impl Iterator<Item = &usize> {}
|
||||
// taken from `tokio` as an example of a method that was particularly bad before
|
||||
// @has - '//h4[@class="method"]' "pub async fn readable<T>(&self) -> Result<AsyncFdReadyGuard<'_, T>, ()>"
|
||||
// @has - '//div[@class="method has-srclink"]' "pub async fn readable<T>(&self) -> Result<AsyncFdReadyGuard<'_, T>, ()>"
|
||||
pub async fn readable<T>(&self) -> Result<AsyncFdReadyGuard<'_, T>, ()> {}
|
||||
// @has - '//h4[@class="method"]' "pub async fn mut_self(&mut self)"
|
||||
// @has - '//div[@class="method has-srclink"]' "pub async fn mut_self(&mut self)"
|
||||
pub async fn mut_self(&mut self) {}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#![feature(auto_traits)]
|
||||
|
||||
// @has auto_aliases/trait.Bar.html '//h3[@data-aliases="auto_aliases::Foo"]' 'impl Bar for Foo'
|
||||
// @has auto_aliases/trait.Bar.html '//div[@data-aliases="auto_aliases::Foo"]' 'impl Bar for Foo'
|
||||
pub struct Foo;
|
||||
|
||||
pub auto trait Bar {}
|
||||
|
@ -1,6 +1,6 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/struct.S.html '//h3[@id="impl-Into%3CU%3E"]//code' 'impl<T, U> Into<U> for T'
|
||||
// @has foo/struct.S.html '//div[@id="impl-Into%3CU%3E"]//code' 'impl<T, U> Into<U> for T'
|
||||
pub struct S2 {}
|
||||
mod m {
|
||||
pub struct S {}
|
||||
|
@ -38,12 +38,12 @@ pub const fn bar2() -> u32 { 42 }
|
||||
pub struct Foo;
|
||||
|
||||
impl Foo {
|
||||
// @has 'foo/struct.Foo.html' '//h4[@id="method.gated"]/code' 'pub unsafe fn gated() -> u32'
|
||||
// @has 'foo/struct.Foo.html' '//div[@id="method.gated"]/code' 'pub unsafe fn gated() -> u32'
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[rustc_const_unstable(feature="foo", issue = "none")]
|
||||
pub const unsafe fn gated() -> u32 { 42 }
|
||||
|
||||
// @has 'foo/struct.Foo.html' '//h4[@id="method.stable_impl"]/code' 'pub const fn stable_impl() -> u32'
|
||||
// @has 'foo/struct.Foo.html' '//div[@id="method.stable_impl"]/code' 'pub const fn stable_impl() -> u32'
|
||||
// @has - '//span[@class="since"]' '1.0.0 (const: 1.2.0)'
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[rustc_const_stable(feature = "rust1", since = "1.2.0")]
|
||||
|
@ -8,7 +8,7 @@ pub const fn bar() -> usize {
|
||||
}
|
||||
|
||||
// @has foo/struct.Foo.html
|
||||
// @has - '//*[@class="method"]' 'const fn new()'
|
||||
// @has - '//*[@class="method has-srclink"]' 'const fn new()'
|
||||
pub struct Foo(usize);
|
||||
|
||||
impl Foo {
|
||||
|
@ -8,7 +8,7 @@ pub struct Simd<T, const WIDTH: usize> {
|
||||
inner: T,
|
||||
}
|
||||
|
||||
// @has foo/struct.Simd.html '//div[@id="trait-implementations-list"]//h3/code' 'impl Add<Simd<u8, 16_usize>> for Simd<u8, 16>'
|
||||
// @has foo/struct.Simd.html '//div[@id="trait-implementations-list"]//div/code' 'impl Add<Simd<u8, 16_usize>> for Simd<u8, 16>'
|
||||
impl Add for Simd<u8, 16> {
|
||||
type Output = Self;
|
||||
|
||||
|
@ -6,7 +6,7 @@ pub trait Array {
|
||||
}
|
||||
|
||||
// @has foo/trait.Array.html
|
||||
// @has - '//h3[@class="impl"]' 'impl<T, const N: usize> Array for [T; N]'
|
||||
// @has - '//div[@class="impl has-srclink"]' 'impl<T, const N: usize> Array for [T; N]'
|
||||
impl <T, const N: usize> Array for [T; N] {
|
||||
type Item = T;
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ impl Trait<{1 + 2}> for u8 {}
|
||||
// @has foo/struct.Bar.html '//pre[@class="rust struct"]' 'pub struct Bar<T, const N: usize>(_)'
|
||||
pub struct Bar<T, const N: usize>([T; N]);
|
||||
|
||||
// @has foo/struct.Foo.html '//h3[@id="impl"]/code' 'impl<const M: usize> Foo<M> where u8: Trait<M>'
|
||||
// @has foo/struct.Foo.html '//div[@id="impl"]/code' 'impl<const M: usize> Foo<M> where u8: Trait<M>'
|
||||
impl<const M: usize> Foo<M> where u8: Trait<M> {
|
||||
// @has - '//*[@id="associatedconstant.FOO_ASSOC"]' 'pub const FOO_ASSOC: usize'
|
||||
pub const FOO_ASSOC: usize = M + 13;
|
||||
@ -47,7 +47,7 @@ pub fn hey<const N: usize>(&self) -> Bar<u8, N> {
|
||||
}
|
||||
}
|
||||
|
||||
// @has foo/struct.Bar.html '//h3[@id="impl"]/code' 'impl<const M: usize> Bar<u8, M>'
|
||||
// @has foo/struct.Bar.html '//div[@id="impl"]/code' 'impl<const M: usize> Bar<u8, M>'
|
||||
impl<const M: usize> Bar<u8, M> {
|
||||
// @has - '//*[@id="method.hey"]' \
|
||||
// 'pub fn hey<const N: usize>(&self) -> Foo<N> where u8: Trait<N>'
|
||||
|
@ -9,20 +9,20 @@ pub enum Order {
|
||||
}
|
||||
|
||||
// @has foo/struct.VSet.html '//pre[@class="rust struct"]' 'pub struct VSet<T, const ORDER: Order>'
|
||||
// @has foo/struct.VSet.html '//h3[@id="impl-Send"]/code' 'impl<T, const ORDER: Order> Send for VSet<T, ORDER>'
|
||||
// @has foo/struct.VSet.html '//h3[@id="impl-Sync"]/code' 'impl<T, const ORDER: Order> Sync for VSet<T, ORDER>'
|
||||
// @has foo/struct.VSet.html '//div[@id="impl-Send"]/code' 'impl<T, const ORDER: Order> Send for VSet<T, ORDER>'
|
||||
// @has foo/struct.VSet.html '//div[@id="impl-Sync"]/code' 'impl<T, const ORDER: Order> Sync for VSet<T, ORDER>'
|
||||
pub struct VSet<T, const ORDER: Order> {
|
||||
inner: Vec<T>,
|
||||
}
|
||||
|
||||
// @has foo/struct.VSet.html '//h3[@id="impl"]/code' 'impl<T> VSet<T, {Order::Sorted}>'
|
||||
// @has foo/struct.VSet.html '//div[@id="impl"]/code' 'impl<T> VSet<T, {Order::Sorted}>'
|
||||
impl <T> VSet<T, {Order::Sorted}> {
|
||||
pub fn new() -> Self {
|
||||
Self { inner: Vec::new() }
|
||||
}
|
||||
}
|
||||
|
||||
// @has foo/struct.VSet.html '//h3[@id="impl-1"]/code' 'impl<T> VSet<T, {Order::Unsorted}>'
|
||||
// @has foo/struct.VSet.html '//div[@id="impl-1"]/code' 'impl<T> VSet<T, {Order::Unsorted}>'
|
||||
impl <T> VSet<T, {Order::Unsorted}> {
|
||||
pub fn new() -> Self {
|
||||
Self { inner: Vec::new() }
|
||||
@ -31,7 +31,7 @@ pub fn new() -> Self {
|
||||
|
||||
pub struct Escape<const S: &'static str>;
|
||||
|
||||
// @has foo/struct.Escape.html '//h3[@id="impl"]/code' 'impl Escape<{ r#"<script>alert("Escape");</script>"# }>'
|
||||
// @has foo/struct.Escape.html '//div[@id="impl"]/code' 'impl Escape<{ r#"<script>alert("Escape");</script>"# }>'
|
||||
impl Escape<{ r#"<script>alert("Escape");</script>"# }> {
|
||||
pub fn f() {}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ pub trait Bar {
|
||||
fn foo(foo: Self::Fuu);
|
||||
}
|
||||
|
||||
// @has doc_assoc_item/struct.Foo.html '//*[@class="impl"]' 'impl<T: Bar<Fuu = u32>> Foo<T>'
|
||||
// @has doc_assoc_item/struct.Foo.html '//*[@class="impl has-srclink"]' 'impl<T: Bar<Fuu = u32>> Foo<T>'
|
||||
impl<T: Bar<Fuu = u32>> Foo<T> {
|
||||
pub fn new(t: T) -> Foo<T> {
|
||||
Foo {
|
||||
|
@ -1,8 +1,8 @@
|
||||
// @has issue_33054/impls/struct.Foo.html
|
||||
// @has - '//code' 'impl Foo'
|
||||
// @has - '//code' 'impl Bar for Foo'
|
||||
// @count - '//*[@id="trait-implementations-list"]//*[@class="impl"]' 1
|
||||
// @count - '//*[@id="main"]/details/summary/*[@class="impl"]' 1
|
||||
// @count - '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]' 1
|
||||
// @count - '//*[@id="main"]/details/summary/*[@class="impl has-srclink"]' 1
|
||||
// @has issue_33054/impls/bar/trait.Bar.html
|
||||
// @has - '//code' 'impl Bar for Foo'
|
||||
// @count - '//*[@class="struct"]' 1
|
||||
|
@ -1,19 +1,19 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/struct.Foo.html
|
||||
// @has - '//div[@id="synthetic-implementations-list"]/h3[@id="impl-Send"]' 'impl Send for Foo'
|
||||
// @has - '//div[@id="synthetic-implementations-list"]/div[@id="impl-Send"]' 'impl Send for Foo'
|
||||
pub struct Foo;
|
||||
|
||||
pub trait EmptyTrait {}
|
||||
|
||||
// @has - '//div[@id="trait-implementations-list"]/h3[@id="impl-EmptyTrait"]' 'impl EmptyTrait for Foo'
|
||||
// @has - '//div[@id="trait-implementations-list"]/div[@id="impl-EmptyTrait"]' 'impl EmptyTrait for Foo'
|
||||
impl EmptyTrait for Foo {}
|
||||
|
||||
pub trait NotEmpty {
|
||||
fn foo(&self);
|
||||
}
|
||||
|
||||
// @has - '//div[@id="trait-implementations-list"]/details/summary/h3[@id="impl-NotEmpty"]' 'impl NotEmpty for Foo'
|
||||
// @has - '//div[@id="trait-implementations-list"]/details/summary/div[@id="impl-NotEmpty"]' 'impl NotEmpty for Foo'
|
||||
impl NotEmpty for Foo {
|
||||
fn foo(&self) {}
|
||||
}
|
||||
|
@ -2,5 +2,5 @@
|
||||
|
||||
// This test ensures that the [src] link is present on traits items.
|
||||
|
||||
// @has foo/trait.Iterator.html '//h3[@id="method.zip"]/a[@class="srclink"]' "[src]"
|
||||
// @has foo/trait.Iterator.html '//div[@id="method.zip"]/a[@class="srclink"]' "[src]"
|
||||
pub use std::iter::Iterator;
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
use std::fmt;
|
||||
|
||||
// @!has foo/struct.Bar.html '//h3[@id="impl-ToString"]//code' 'impl<T> ToString for T'
|
||||
// @!has foo/struct.Bar.html '//div[@id="impl-ToString"]//code' 'impl<T> ToString for T'
|
||||
pub struct Bar;
|
||||
|
||||
// @has foo/struct.Foo.html '//h3[@id="impl-ToString"]//code' 'impl<T> ToString for T'
|
||||
// @has foo/struct.Foo.html '//div[@id="impl-ToString"]//code' 'impl<T> ToString for T'
|
||||
pub struct Foo;
|
||||
// @has foo/struct.Foo.html '//div[@class="sidebar-links"]/a[@href="#impl-ToString"]' 'ToString'
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
pub struct Foo<T> { field: T }
|
||||
|
||||
// @has impl_parts/struct.Foo.html '//*[@class="impl"]//code' \
|
||||
// @has impl_parts/struct.Foo.html '//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T: Clone> !AnAutoTrait for Foo<T> where T: Sync,"
|
||||
// @has impl_parts/trait.AnAutoTrait.html '//*[@class="item-list"]//code' \
|
||||
// "impl<T: Clone> !AnAutoTrait for Foo<T> where T: Sync,"
|
||||
|
@ -5,8 +5,8 @@
|
||||
extern crate rustdoc_nonreachable_impls;
|
||||
|
||||
// @has issue_31948_1/struct.Wobble.html
|
||||
// @has - '//*[@class="impl"]//code' 'Bark for'
|
||||
// @has - '//*[@class="impl"]//code' 'Woof for'
|
||||
// @has - '//*[@class="impl has-srclink"]//code' 'Bark for'
|
||||
// @has - '//*[@class="impl has-srclink"]//code' 'Woof for'
|
||||
// @!has - '//*[@class="impl"]//code' 'Bar for'
|
||||
// @!has - '//*[@class="impl"]//code' 'Qux for'
|
||||
pub use rustdoc_nonreachable_impls::hidden::Wobble;
|
||||
|
@ -5,9 +5,9 @@
|
||||
extern crate rustdoc_nonreachable_impls;
|
||||
|
||||
// @has issue_31948_2/struct.Wobble.html
|
||||
// @has - '//*[@class="impl"]//code' 'Qux for'
|
||||
// @has - '//*[@class="impl"]//code' 'Bark for'
|
||||
// @has - '//*[@class="impl"]//code' 'Woof for'
|
||||
// @has - '//*[@class="impl has-srclink"]//code' 'Qux for'
|
||||
// @has - '//*[@class="impl has-srclink"]//code' 'Bark for'
|
||||
// @has - '//*[@class="impl has-srclink"]//code' 'Woof for'
|
||||
// @!has - '//*[@class="impl"]//code' 'Bar for'
|
||||
pub use rustdoc_nonreachable_impls::hidden::Wobble;
|
||||
|
||||
|
@ -5,9 +5,9 @@
|
||||
extern crate rustdoc_nonreachable_impls;
|
||||
|
||||
// @has issue_31948/struct.Foo.html
|
||||
// @has - '//*[@class="impl"]//code' 'Bark for'
|
||||
// @has - '//*[@class="impl"]//code' 'Woof for'
|
||||
// @!has - '//*[@class="impl"]//code' 'Bar for'
|
||||
// @has - '//*[@class="impl has-srclink"]//code' 'Bark for'
|
||||
// @has - '//*[@class="impl has-srclink"]//code' 'Woof for'
|
||||
// @!has - '//*[@class="impl has-srclink"]//code' 'Bar for'
|
||||
// @!has - '//*[@class="impl"]//code' 'Qux for'
|
||||
pub use rustdoc_nonreachable_impls::Foo;
|
||||
|
||||
|
@ -7,5 +7,5 @@ impl super::Blah for super::What { }
|
||||
pub trait Blah { }
|
||||
|
||||
// @count issue_21474/struct.What.html \
|
||||
// '//*[@id="trait-implementations-list"]//*[@class="impl"]' 1
|
||||
// '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]' 1
|
||||
pub struct What;
|
||||
|
@ -5,7 +5,7 @@ pub trait MyTrait {
|
||||
fn my_string(&self) -> String;
|
||||
}
|
||||
|
||||
// @has - "//div[@id='implementors-list']//h3[@id='impl-MyTrait']//code" "impl<T> MyTrait for T where T: Debug"
|
||||
// @has - "//div[@id='implementors-list']//div[@id='impl-MyTrait']//code" "impl<T> MyTrait for T where T: Debug"
|
||||
impl<T> MyTrait for T where T: fmt::Debug {
|
||||
fn my_string(&self) -> String {
|
||||
format!("{:?}", self)
|
||||
|
@ -23,7 +23,7 @@ fn ignore(_: &X) {}
|
||||
}
|
||||
|
||||
// @has issue_33302/struct.S.html \
|
||||
// '//h3[@class="impl"]' 'impl T<[i32; 16]> for S'
|
||||
// '//div[@class="impl has-srclink"]' 'impl T<[i32; 16]> for S'
|
||||
// @has - '//*[@id="associatedconstant.C"]' 'const C: [i32; 16]'
|
||||
// @has - '//*[@id="associatedconstant.D"]' 'const D: i32'
|
||||
impl T<[i32; ($n * $n)]> for S {
|
||||
@ -31,7 +31,7 @@ fn ignore(_: &X) {}
|
||||
}
|
||||
|
||||
// @has issue_33302/struct.S.html \
|
||||
// '//h3[@class="impl"]' 'impl T<[i32; 16]> for S'
|
||||
// '//div[@class="impl has-srclink"]' 'impl T<[i32; 16]> for S'
|
||||
// @has - '//*[@id="associatedconstant.C-1"]' 'const C: (i32,)'
|
||||
// @has - '//*[@id="associatedconstant.D-1"]' 'const D: i32'
|
||||
impl T<(i32,)> for S {
|
||||
@ -39,7 +39,7 @@ impl T<(i32,)> for S {
|
||||
}
|
||||
|
||||
// @has issue_33302/struct.S.html \
|
||||
// '//h3[@class="impl"]' 'impl T<(i32, i32)> for S'
|
||||
// '//div[@class="impl has-srclink"]' 'impl T<(i32, i32)> for S'
|
||||
// @has - '//*[@id="associatedconstant.C-2"]' 'const C: (i32, i32)'
|
||||
// @has - '//*[@id="associatedconstant.D-2"]' 'const D: i32'
|
||||
impl T<(i32, i32)> for S {
|
||||
|
@ -4,12 +4,12 @@ pub trait Bar<T, U> {}
|
||||
|
||||
// @has 'foo/struct.Foo1.html'
|
||||
pub struct Foo1;
|
||||
// @count - '//*[@id="trait-implementations-list"]//*[@class="impl"]' 1
|
||||
// @has - '//*[@class="impl"]' "impl Bar<Foo1, &'static Foo1> for Foo1"
|
||||
// @count - '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]' 1
|
||||
// @has - '//*[@class="impl has-srclink"]' "impl Bar<Foo1, &'static Foo1> for Foo1"
|
||||
impl Bar<Foo1, &'static Foo1> for Foo1 {}
|
||||
|
||||
// @has 'foo/struct.Foo2.html'
|
||||
pub struct Foo2;
|
||||
// @count - '//*[@id="trait-implementations-list"]//*[@class="impl"]' 1
|
||||
// @has - '//*[@class="impl"]' "impl Bar<&'static Foo2, Foo2> for u8"
|
||||
// @count - '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]' 1
|
||||
// @has - '//*[@class="impl has-srclink"]' "impl Bar<&'static Foo2, Foo2> for u8"
|
||||
impl Bar<&'static Foo2, Foo2> for u8 {}
|
||||
|
@ -14,7 +14,7 @@ impl<B, C> Signal2 for B where B: Signal<Item = C> {
|
||||
// @has - '//code' 'impl<B> Send for Switch<B> where <B as Signal>::Item: Send'
|
||||
// @has - '//code' 'impl<B> Sync for Switch<B> where <B as Signal>::Item: Sync'
|
||||
// @count - '//*[@id="implementations-list"]//*[@class="impl"]' 0
|
||||
// @count - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]' 5
|
||||
// @count - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]' 5
|
||||
pub struct Switch<B: Signal> {
|
||||
pub inner: <B as Signal2>::Item2,
|
||||
}
|
||||
|
@ -7,8 +7,8 @@ pub trait Owned<'a> {
|
||||
}
|
||||
|
||||
// @has issue_51236/struct.Owned.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<T> Send for \
|
||||
// Owned<T> where <T as Owned<'static>>::Reader: Send"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T> Send for Owned<T> where <T as Owned<'static>>::Reader: Send"
|
||||
pub struct Owned<T> where T: for<'a> ::traits::Owned<'a> {
|
||||
marker: PhantomData<<T as ::traits::Owned<'static>>::Reader>,
|
||||
}
|
||||
|
@ -12,9 +12,10 @@ macro_rules! array_impls {
|
||||
}
|
||||
}
|
||||
|
||||
// @has issue_53812/trait.MyIterator.html '//*[@id="implementors-list"]/h3[1]' 'MyStruct<[T; 0]>'
|
||||
// @has - '//*[@id="implementors-list"]/h3[2]' 'MyStruct<[T; 1]>'
|
||||
// @has - '//*[@id="implementors-list"]/h3[3]' 'MyStruct<[T; 2]>'
|
||||
// @has - '//*[@id="implementors-list"]/h3[4]' 'MyStruct<[T; 3]>'
|
||||
// @has - '//*[@id="implementors-list"]/h3[5]' 'MyStruct<[T; 10]>'
|
||||
// @has issue_53812/trait.MyIterator.html
|
||||
// @has - '//*[@id="implementors-list"]/div[@class="impl has-srclink"][1]' 'MyStruct<[T; 0]>'
|
||||
// @has - '//*[@id="implementors-list"]/div[@class="impl has-srclink"][2]' 'MyStruct<[T; 1]>'
|
||||
// @has - '//*[@id="implementors-list"]/div[@class="impl has-srclink"][3]' 'MyStruct<[T; 2]>'
|
||||
// @has - '//*[@id="implementors-list"]/div[@class="impl has-srclink"][4]' 'MyStruct<[T; 3]>'
|
||||
// @has - '//*[@id="implementors-list"]/div[@class="impl has-srclink"][5]' 'MyStruct<[T; 10]>'
|
||||
array_impls! { 10 3 2 1 0 }
|
||||
|
@ -3,11 +3,11 @@ pub trait ScopeHandle<'scope> {}
|
||||
|
||||
|
||||
// @has issue_54705/struct.ScopeFutureContents.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<'scope, S> \
|
||||
// Send for ScopeFutureContents<'scope, S> where S: Sync"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<'scope, S> Send for ScopeFutureContents<'scope, S> where S: Sync"
|
||||
//
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<'scope, S> \
|
||||
// Sync for ScopeFutureContents<'scope, S> where S: Sync"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<'scope, S> Sync for ScopeFutureContents<'scope, S> where S: Sync"
|
||||
pub struct ScopeFutureContents<'scope, S>
|
||||
where S: ScopeHandle<'scope>,
|
||||
{
|
||||
|
@ -1,16 +1,18 @@
|
||||
#![feature(negative_impls)]
|
||||
|
||||
// @has issue_55321/struct.A.html
|
||||
// @has - '//*[@id="trait-implementations-list"]//*[@class="impl"]//code' "impl !Send for A"
|
||||
// @has - '//*[@id="trait-implementations-list"]//*[@class="impl"]//code' "impl !Sync for A"
|
||||
// @has - '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl !Send for A"
|
||||
// @has - '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl !Sync for A"
|
||||
pub struct A();
|
||||
|
||||
impl !Send for A {}
|
||||
impl !Sync for A {}
|
||||
|
||||
// @has issue_55321/struct.B.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<T> !Send for \
|
||||
// B<T>"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<T> !Sync for \
|
||||
// B<T>"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T> !Send for B<T>"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T> !Sync for B<T>"
|
||||
pub struct B<T: ?Sized>(A, Box<T>);
|
||||
|
@ -17,8 +17,8 @@ impl<'a, T> MyTrait for Inner<'a, T> {
|
||||
}
|
||||
|
||||
// @has issue_56822/struct.Parser.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<'a> Send for \
|
||||
// Parser<'a>"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<'a> Send for Parser<'a>"
|
||||
pub struct Parser<'a> {
|
||||
field: <Wrapper<Inner<'a, u8>> as MyTrait>::Output
|
||||
}
|
||||
|
@ -26,10 +26,10 @@ unsafe impl<I> Send for DynTrait<I>
|
||||
{}
|
||||
|
||||
// @has issue_60726/struct.IntoIter.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<T> !Send for \
|
||||
// IntoIter<T>"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<T> !Sync for \
|
||||
// IntoIter<T>"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T> !Send for IntoIter<T>"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T> !Sync for IntoIter<T>"
|
||||
pub struct IntoIter<T>{
|
||||
hello:DynTrait<FooInterface<T>>,
|
||||
}
|
||||
|
@ -8,7 +8,8 @@ pub const fn bloop() -> i32 {
|
||||
pub struct Struct {}
|
||||
|
||||
impl Struct {
|
||||
// @has 'issue_76501/struct.Struct.html' '//*[@class="method"]' 'pub const fn blurp() -> i32'
|
||||
// @has 'issue_76501/struct.Struct.html' '//*[@class="method has-srclink"]' \
|
||||
// 'pub const fn blurp() -> i32'
|
||||
/// A useless function that always returns 1.
|
||||
pub const fn blurp() -> i32 {
|
||||
1
|
||||
|
@ -7,8 +7,8 @@ pub trait AnAmazingTrait {}
|
||||
impl<T: Something> AnAmazingTrait for T {}
|
||||
|
||||
// @has 'issue_78673/struct.MyStruct.html'
|
||||
// @has - '//*[@class="impl"]' 'AnAmazingTrait for MyStruct'
|
||||
// @!has - '//*[@class="impl"]' 'AnAmazingTrait for T'
|
||||
// @has - '//*[@class="impl has-srclink"]' 'AnAmazingTrait for MyStruct'
|
||||
// @!has - '//*[@class="impl has-srclink"]' 'AnAmazingTrait for T'
|
||||
pub struct MyStruct;
|
||||
|
||||
impl AnAmazingTrait for MyStruct {}
|
||||
@ -16,8 +16,8 @@ impl AnAmazingTrait for MyStruct {}
|
||||
// generic structs may have _both_ specific and blanket impls that apply
|
||||
|
||||
// @has 'issue_78673/struct.AnotherStruct.html'
|
||||
// @has - '//*[@class="impl"]' 'AnAmazingTrait for AnotherStruct<()>'
|
||||
// @has - '//*[@class="impl"]' 'AnAmazingTrait for T'
|
||||
// @has - '//*[@class="impl has-srclink"]' 'AnAmazingTrait for AnotherStruct<()>'
|
||||
// @has - '//*[@class="impl has-srclink"]' 'AnAmazingTrait for T'
|
||||
pub struct AnotherStruct<T>(T);
|
||||
|
||||
impl<T: Something> Something for AnotherStruct<T> {}
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
pub struct Foo;
|
||||
|
||||
// @count foo/struct.Foo.html '//*[@class="impl-items"]//*[@class="method"]' 2
|
||||
// @count foo/struct.Foo.html '//*[@class="impl-items"]//*[@class="method has-srclink"]' 2
|
||||
// @!has - '//*[@class="impl-items"]//*[@class="method"]' 'mut'
|
||||
impl Foo {
|
||||
pub fn foo(mut self) {}
|
||||
|
@ -5,8 +5,10 @@
|
||||
// @matches negative_impl/struct.Bravo.html '//pre' "pub struct Bravo<B>"
|
||||
pub struct Bravo<B>(B);
|
||||
|
||||
// @matches negative_impl/struct.Alpha.html '//*[@class="impl"]//code' "impl !Send for Alpha"
|
||||
// @matches negative_impl/struct.Alpha.html '//*[@class="impl has-srclink"]//code' \
|
||||
// "impl !Send for Alpha"
|
||||
impl !Send for Alpha {}
|
||||
|
||||
// @matches negative_impl/struct.Bravo.html '//*[@class="impl"]//code' "impl<B> !Send for Bravo<B>"
|
||||
// @matches negative_impl/struct.Bravo.html '//*[@class="impl has-srclink"]//code' "\
|
||||
// impl<B> !Send for Bravo<B>"
|
||||
impl<B> !Send for Bravo<B> {}
|
||||
|
@ -2,4 +2,4 @@
|
||||
|
||||
include!("primitive/primitive-generic-impl.rs");
|
||||
|
||||
// @has foo/primitive.i32.html '//h3[@id="impl-ToString"]//code' 'impl<T> ToString for T'
|
||||
// @has foo/primitive.i32.html '//div[@id="impl-ToString"]//code' 'impl<T> ToString for T'
|
||||
|
@ -10,8 +10,8 @@ pub fn bar() -> usize {
|
||||
}
|
||||
|
||||
// @has foo/struct.Foo.html
|
||||
// @has - '//*[@class="method"]' 'pub fn new()'
|
||||
// @has - '//*[@class="method"]' 'fn not_pub()'
|
||||
// @has - '//*[@class="method has-srclink"]' 'pub fn new()'
|
||||
// @has - '//*[@class="method has-srclink"]' 'fn not_pub()'
|
||||
pub struct Foo(usize);
|
||||
|
||||
impl Foo {
|
||||
|
@ -6,9 +6,9 @@
|
||||
// @has - '//*[@class="sidebar-title"][@href="#foreign-impls"]' 'Implementations on Foreign Types'
|
||||
// @has - '//h2[@id="foreign-impls"]' 'Implementations on Foreign Types'
|
||||
// @has - '//*[@class="sidebar-links"]/a[@href="#impl-Foo-for-u32"]' 'u32'
|
||||
// @has - '//h3[@id="impl-Foo-for-u32"]//code' 'impl Foo for u32'
|
||||
// @has - '//div[@id="impl-Foo-for-u32"]//code' 'impl Foo for u32'
|
||||
// @has - '//*[@class="sidebar-links"]/a[@href="#impl-Foo-for-%26%27a%20str"]' "&'a str"
|
||||
// @has - '//h3[@id="impl-Foo-for-%26%27a%20str"]//code' "impl<'a> Foo for &'a str"
|
||||
// @has - '//div[@id="impl-Foo-for-%26%27a%20str"]//code' "impl<'a> Foo for &'a str"
|
||||
pub trait Foo {}
|
||||
|
||||
impl Foo for u32 {}
|
||||
|
@ -1,17 +1,17 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/struct.Bar.html
|
||||
// @!has - '//h3[@id="impl-Sized"]'
|
||||
// @!has - '//div[@id="impl-Sized"]'
|
||||
pub struct Bar {
|
||||
a: u16,
|
||||
}
|
||||
|
||||
// @has foo/struct.Foo.html
|
||||
// @!has - '//h3[@id="impl-Sized"]'
|
||||
// @!has - '//div[@id="impl-Sized"]'
|
||||
pub struct Foo<T: ?Sized>(T);
|
||||
|
||||
// @has foo/struct.Unsized.html
|
||||
// @has - '//h3[@id="impl-Sized"]/code' 'impl !Sized for Unsized'
|
||||
// @has - '//div[@id="impl-Sized"]/code' 'impl !Sized for Unsized'
|
||||
pub struct Unsized {
|
||||
data: [u8],
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
use std::iter::Iterator;
|
||||
|
||||
// @has foo/struct.Odd.html
|
||||
// @has - '//h4[@id="method.new"]//span[@class="notable-traits"]//code/span' 'impl Iterator for Odd'
|
||||
// @has - '//div[@id="method.new"]//span[@class="notable-traits"]//code/span' 'impl Iterator for Odd'
|
||||
pub struct Odd {
|
||||
current: usize,
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/struct.Unsized.html
|
||||
// @has - '//h3[@id="impl-Sized"]/code' 'impl !Sized for Unsized'
|
||||
// @!has - '//h3[@id="impl-Sized"]/a[@class="srclink"]' '[src]'
|
||||
// @has - '//h3[@id="impl-Sync"]/code' 'impl Sync for Unsized'
|
||||
// @!has - '//h3[@id="impl-Sync"]/a[@class="srclink"]' '[src]'
|
||||
// @has - '//h3[@id="impl-Any"]/code' 'impl<T> Any for T'
|
||||
// @has - '//h3[@id="impl-Any"]/a[@class="srclink"]' '[src]'
|
||||
// @has - '//div[@id="impl-Sized"]/code' 'impl !Sized for Unsized'
|
||||
// @!has - '//div[@id="impl-Sized"]/a[@class="srclink"]' '[src]'
|
||||
// @has - '//div[@id="impl-Sync"]/code' 'impl Sync for Unsized'
|
||||
// @!has - '//div[@id="impl-Sync"]/a[@class="srclink"]' '[src]'
|
||||
// @has - '//div[@id="impl-Any"]/code' 'impl<T> Any for T'
|
||||
// @has - '//div[@id="impl-Any"]/a[@class="srclink"]' '[src]'
|
||||
pub struct Unsized {
|
||||
data: [u8],
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
// @has basic/struct.Foo.html
|
||||
// @has - '//code' 'impl<T> Send for Foo<T> where T: Send'
|
||||
// @has - '//code' 'impl<T> Sync for Foo<T> where T: Sync'
|
||||
// @count - '//*[@id="implementations-list"]//*[@class="impl"]' 0
|
||||
// @count - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]' 5
|
||||
// @count - '//*[@id="implementations-list"]//*[@class="impl has-srclink"]' 0
|
||||
// @count - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]' 5
|
||||
pub struct Foo<T> {
|
||||
field: T,
|
||||
}
|
||||
|
@ -20,8 +20,8 @@ pub struct Foo<T> {
|
||||
}
|
||||
|
||||
// @has complex/struct.NotOuter.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<'a, T, K: \
|
||||
// ?Sized> Send for Outer<'a, T, K> where K: for<'b> Fn((&'b bool, &'a u8)) \
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<'a, T, K: ?Sized> Send for Outer<'a, T, K> where K: for<'b> Fn((&'b bool, &'a u8)) \
|
||||
// -> &'b i8, T: MyTrait<'a>, <T as MyTrait<'a>>::MyItem: Copy, 'a: 'static"
|
||||
|
||||
pub use foo::{Foo, Inner as NotInner, MyTrait as NotMyTrait, Outer as NotOuter};
|
||||
|
@ -9,11 +9,11 @@ unsafe impl<'a, T> Send for Inner<'a, T>
|
||||
{}
|
||||
|
||||
// @has lifetimes/struct.Foo.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<'c, K> Send \
|
||||
// for Foo<'c, K> where K: for<'b> Fn(&'b bool) -> &'c u8, 'c: 'static"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<'c, K> Send for Foo<'c, K> where K: for<'b> Fn(&'b bool) -> &'c u8, 'c: 'static"
|
||||
//
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<'c, K> Sync \
|
||||
// for Foo<'c, K> where K: Sync"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<'c, K> Sync for Foo<'c, K> where K: Sync"
|
||||
pub struct Foo<'c, K: 'c> {
|
||||
inner_field: Inner<'c, K>,
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
// @has manual/struct.Foo.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' 'impl<T> Sync for \
|
||||
// Foo<T> where T: Sync'
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// 'impl<T> Sync for Foo<T> where T: Sync'
|
||||
//
|
||||
// @has - '//*[@id="trait-implementations-list"]//*[@class="impl"]//code' \
|
||||
// @has - '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// 'impl<T> Send for Foo<T>'
|
||||
//
|
||||
// @count - '//*[@id="trait-implementations-list"]//*[@class="impl"]' 1
|
||||
// @count - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]' 4
|
||||
// @count - '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]' 1
|
||||
// @count - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]' 4
|
||||
pub struct Foo<T> {
|
||||
field: T,
|
||||
}
|
||||
|
@ -3,11 +3,11 @@ pub struct Inner<T: Copy> {
|
||||
}
|
||||
|
||||
// @has negative/struct.Outer.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<T> !Send for \
|
||||
// Outer<T>"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T> !Send for Outer<T>"
|
||||
//
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<T> \
|
||||
// !Sync for Outer<T>"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T> !Sync for Outer<T>"
|
||||
pub struct Outer<T: Copy> {
|
||||
inner_field: Inner<T>,
|
||||
}
|
||||
|
@ -9,10 +9,10 @@ unsafe impl<T> Send for Inner<T>
|
||||
}
|
||||
|
||||
// @has nested/struct.Foo.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' 'impl<T> Send for \
|
||||
// Foo<T> where T: Copy'
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// 'impl<T> Send for Foo<T> where T: Copy'
|
||||
//
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' \
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// 'impl<T> Sync for Foo<T> where T: Sync'
|
||||
pub struct Foo<T> {
|
||||
inner_field: Inner<T>,
|
||||
|
@ -9,8 +9,8 @@ unsafe impl<T> Send for Inner<T>
|
||||
}
|
||||
|
||||
// @has no_redundancy/struct.Outer.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<T> Send for \
|
||||
// Outer<T> where T: Copy + Send"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T> Send for Outer<T> where T: Copy + Send"
|
||||
pub struct Outer<T> {
|
||||
inner_field: Inner<T>,
|
||||
}
|
||||
|
@ -23,11 +23,12 @@ unsafe impl<'a, T> Sync for Inner<'a, T>
|
||||
}
|
||||
|
||||
// @has project/struct.Foo.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<'c, K> Send \
|
||||
// for Foo<'c, K> where K: MyTrait<MyItem = bool>, 'c: 'static"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<'c, K> Send for Foo<'c, K> where K: MyTrait<MyItem = bool>, 'c: 'static"
|
||||
//
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<'c, K> Sync \
|
||||
// for Foo<'c, K> where K: MyTrait, <K as MyTrait>::MyItem: OtherTrait, 'c: 'static,"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<'c, K> Sync for Foo<'c, K> where K: MyTrait, <K as MyTrait>::MyItem: OtherTrait, \
|
||||
// 'c: 'static,"
|
||||
pub struct Foo<'c, K: 'c> {
|
||||
inner_field: Inner<'c, K>,
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ impl<T> Pattern for Wrapper<T> {
|
||||
|
||||
|
||||
// @has self_referential/struct.WriteAndThen.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<P1> Send for \
|
||||
// WriteAndThen<P1> where <P1 as Pattern>::Value: Send"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<P1> Send for WriteAndThen<P1> where <P1 as Pattern>::Value: Send"
|
||||
pub struct WriteAndThen<P1>(pub P1::Value,pub <Constrain<P1, Wrapper<P1::Value>> as Pattern>::Value)
|
||||
where P1: Pattern;
|
||||
|
@ -3,8 +3,8 @@ pub trait OwnedTrait<'a> {
|
||||
}
|
||||
|
||||
// @has static_region/struct.Owned.html
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]//code' "impl<T> Send for \
|
||||
// Owned<T> where <T as OwnedTrait<'static>>::Reader: Send"
|
||||
// @has - '//*[@id="synthetic-implementations-list"]//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<T> Send for Owned<T> where <T as OwnedTrait<'static>>::Reader: Send"
|
||||
pub struct Owned<T> where T: OwnedTrait<'static> {
|
||||
marker: <T as OwnedTrait<'static>>::Reader,
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
|
||||
pub trait Foo {
|
||||
// @has foo/trait.Foo.html '//h3[@id="tymethod.foo"]//div[@class="code-attribute"]' '#[must_use]'
|
||||
// @has foo/trait.Foo.html '//div[@id="tymethod.foo"]//div[@class="code-attribute"]' '#[must_use]'
|
||||
#[must_use]
|
||||
fn foo();
|
||||
}
|
||||
@ -11,11 +11,11 @@ pub trait Foo {
|
||||
pub struct Bar;
|
||||
|
||||
impl Bar {
|
||||
// @has foo/struct.Bar.html '//h4[@id="method.bar"]//div[@class="code-attribute"]' '#[must_use]'
|
||||
// @has foo/struct.Bar.html '//div[@id="method.bar"]//div[@class="code-attribute"]' '#[must_use]'
|
||||
#[must_use]
|
||||
pub fn bar() {}
|
||||
|
||||
// @has foo/struct.Bar.html '//h4[@id="method.bar2"]//div[@class="code-attribute"]' '#[must_use]'
|
||||
// @has foo/struct.Bar.html '//div[@id="method.bar2"]//div[@class="code-attribute"]' '#[must_use]'
|
||||
#[must_use]
|
||||
pub fn bar2() {}
|
||||
}
|
||||
|
@ -8,58 +8,58 @@ fn defaulted_override(&self) {}
|
||||
|
||||
|
||||
impl MyTrait for String {
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedtype.Assoc-1"]//a[@class="type"]/@href' #associatedtype.Assoc
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedtype.Assoc-1"]//a[@class="anchor"]/@href' #associatedtype.Assoc-1
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedtype.Assoc-1"]//a[@class="type"]/@href' #associatedtype.Assoc
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedtype.Assoc-1"]//a[@class="anchor"]/@href' #associatedtype.Assoc-1
|
||||
type Assoc = ();
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedconstant.VALUE-1"]//a[@class="constant"]/@href' #associatedconstant.VALUE
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedconstant.VALUE-1"]//a[@class="anchor"]/@href' #associatedconstant.VALUE-1
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedconstant.VALUE-1"]//a[@class="constant"]/@href' #associatedconstant.VALUE
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedconstant.VALUE-1"]//a[@class="anchor"]/@href' #associatedconstant.VALUE-1
|
||||
const VALUE: u32 = 5;
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.trait_function"]//a[@class="fnname"]/@href' #tymethod.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.trait_function"]//a[@class="anchor"]/@href' #method.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.trait_function"]//a[@class="fnname"]/@href' #tymethod.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.trait_function"]//a[@class="anchor"]/@href' #method.trait_function
|
||||
fn trait_function(&self) {}
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.defaulted_override-1"]//a[@class="fnname"]/@href' #method.defaulted_override
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.defaulted_override-1"]//a[@class="anchor"]/@href' #method.defaulted_override-1
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.defaulted_override-1"]//a[@class="fnname"]/@href' #method.defaulted_override
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.defaulted_override-1"]//a[@class="anchor"]/@href' #method.defaulted_override-1
|
||||
fn defaulted_override(&self) {}
|
||||
}
|
||||
|
||||
impl MyTrait for Vec<u8> {
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedtype.Assoc-2"]//a[@class="type"]/@href' #associatedtype.Assoc
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedtype.Assoc-2"]//a[@class="anchor"]/@href' #associatedtype.Assoc-2
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedtype.Assoc-2"]//a[@class="type"]/@href' #associatedtype.Assoc
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedtype.Assoc-2"]//a[@class="anchor"]/@href' #associatedtype.Assoc-2
|
||||
type Assoc = ();
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedconstant.VALUE-2"]//a[@class="constant"]/@href' #associatedconstant.VALUE
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedconstant.VALUE-2"]//a[@class="anchor"]/@href' #associatedconstant.VALUE-2
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedconstant.VALUE-2"]//a[@class="constant"]/@href' #associatedconstant.VALUE
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedconstant.VALUE-2"]//a[@class="anchor"]/@href' #associatedconstant.VALUE-2
|
||||
const VALUE: u32 = 5;
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.trait_function"]//a[@class="fnname"]/@href' #tymethod.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.trait_function-1"]//a[@class="anchor"]/@href' #method.trait_function-1
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.trait_function"]//a[@class="fnname"]/@href' #tymethod.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.trait_function-1"]//a[@class="anchor"]/@href' #method.trait_function-1
|
||||
fn trait_function(&self) {}
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.defaulted_override-2"]//a[@class="fnname"]/@href' #method.defaulted_override
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.defaulted_override-2"]//a[@class="anchor"]/@href' #method.defaulted_override-2
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.defaulted_override-2"]//a[@class="fnname"]/@href' #method.defaulted_override
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.defaulted_override-2"]//a[@class="anchor"]/@href' #method.defaulted_override-2
|
||||
fn defaulted_override(&self) {}
|
||||
}
|
||||
|
||||
impl MyTrait for MyStruct {
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedtype.Assoc-3"]//a[@class="type"]/@href' #associatedtype.Assoc
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedtype.Assoc-3"]//a[@class="anchor"]/@href' #associatedtype.Assoc-3
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="associatedtype.Assoc"]//a[@class="type"]/@href' trait.MyTrait.html#associatedtype.Assoc
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="associatedtype.Assoc"]//a[@class="anchor"]/@href' #associatedtype.Assoc
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedtype.Assoc-3"]//a[@class="type"]/@href' #associatedtype.Assoc
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedtype.Assoc-3"]//a[@class="anchor"]/@href' #associatedtype.Assoc-3
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="associatedtype.Assoc"]//a[@class="type"]/@href' trait.MyTrait.html#associatedtype.Assoc
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="associatedtype.Assoc"]//a[@class="anchor"]/@href' #associatedtype.Assoc
|
||||
type Assoc = bool;
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedconstant.VALUE-3"]//a[@class="constant"]/@href' #associatedconstant.VALUE
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="associatedconstant.VALUE-3"]//a[@class="anchor"]/@href' #associatedconstant.VALUE-3
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="associatedconstant.VALUE"]//a[@class="constant"]/@href' trait.MyTrait.html#associatedconstant.VALUE
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="associatedconstant.VALUE"]//a[@class="anchor"]/@href' #associatedconstant.VALUE
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedconstant.VALUE-3"]//a[@class="constant"]/@href' #associatedconstant.VALUE
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="associatedconstant.VALUE-3"]//a[@class="anchor"]/@href' #associatedconstant.VALUE-3
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="associatedconstant.VALUE"]//a[@class="constant"]/@href' trait.MyTrait.html#associatedconstant.VALUE
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="associatedconstant.VALUE"]//a[@class="anchor"]/@href' #associatedconstant.VALUE
|
||||
const VALUE: u32 = 20;
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.trait_function-2"]//a[@class="fnname"]/@href' #tymethod.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.trait_function-2"]//a[@class="anchor"]/@href' #method.trait_function-2
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="method.trait_function"]//a[@class="fnname"]/@href' trait.MyTrait.html#tymethod.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="method.trait_function"]//a[@class="anchor"]/@href' #method.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.trait_function-2"]//a[@class="fnname"]/@href' #tymethod.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.trait_function-2"]//a[@class="anchor"]/@href' #method.trait_function-2
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="method.trait_function"]//a[@class="fnname"]/@href' trait.MyTrait.html#tymethod.trait_function
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="method.trait_function"]//a[@class="anchor"]/@href' #method.trait_function
|
||||
fn trait_function(&self) {}
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.defaulted_override-3"]//a[@class="fnname"]/@href' #method.defaulted_override
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//h4[@id="method.defaulted_override-3"]//a[@class="anchor"]/@href' #method.defaulted_override-3
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="method.defaulted_override"]//a[@class="fnname"]/@href' trait.MyTrait.html#method.defaulted_override
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="method.defaulted_override"]//a[@class="anchor"]/@href' #method.defaulted_override
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.defaulted_override-3"]//a[@class="fnname"]/@href' #method.defaulted_override
|
||||
// @has trait_impl_items_links_and_anchors/trait.MyTrait.html '//div[@id="method.defaulted_override-3"]//a[@class="anchor"]/@href' #method.defaulted_override-3
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="method.defaulted_override"]//a[@class="fnname"]/@href' trait.MyTrait.html#method.defaulted_override
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="method.defaulted_override"]//a[@class="anchor"]/@href' #method.defaulted_override
|
||||
fn defaulted_override(&self) {}
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="method.defaulted"]//a[@class="fnname"]/@href' trait.MyTrait.html#method.defaulted
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//h4[@id="method.defaulted"]//a[@class="anchor"]/@href' #method.defaulted
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="method.defaulted"]//a[@class="fnname"]/@href' trait.MyTrait.html#method.defaulted
|
||||
// @has trait_impl_items_links_and_anchors/struct.MyStruct.html '//div[@id="method.defaulted"]//a[@class="anchor"]/@href' #method.defaulted
|
||||
}
|
||||
|
||||
pub struct MyStruct;
|
||||
|
@ -9,8 +9,8 @@ pub fn method_on_mystruct() {}
|
||||
}
|
||||
|
||||
// @has typedef/type.MyAlias.html
|
||||
// @has - '//*[@class="impl"]//code' 'impl MyAlias'
|
||||
// @has - '//*[@class="impl"]//code' 'impl MyTrait for MyAlias'
|
||||
// @has - '//*[@class="impl has-srclink"]//code' 'impl MyAlias'
|
||||
// @has - '//*[@class="impl has-srclink"]//code' 'impl MyTrait for MyAlias'
|
||||
// @has - 'Alias docstring'
|
||||
// @has - '//*[@class="sidebar"]//p[@class="location"]' 'Type Definition MyAlias'
|
||||
// @has - '//*[@class="sidebar"]//a[@href="#implementations"]' 'Methods'
|
||||
|
@ -11,7 +11,7 @@ pub fn charlie<C>() where C: MyTrait {}
|
||||
|
||||
pub struct Delta<D>(D);
|
||||
|
||||
// @has foo/struct.Delta.html '//*[@class="impl"]//code' \
|
||||
// @has foo/struct.Delta.html '//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<D> Delta<D> where D: MyTrait"
|
||||
impl<D> Delta<D> where D: MyTrait {
|
||||
pub fn delta() {}
|
||||
@ -19,7 +19,7 @@ pub fn delta() {}
|
||||
|
||||
pub struct Echo<E>(E);
|
||||
|
||||
// @has foo/struct.Echo.html '//*[@class="impl"]//code' \
|
||||
// @has foo/struct.Echo.html '//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<E> MyTrait for Echo<E> where E: MyTrait"
|
||||
// @has foo/trait.MyTrait.html '//*[@id="implementors-list"]//code' \
|
||||
// "impl<E> MyTrait for Echo<E> where E: MyTrait"
|
||||
@ -27,7 +27,7 @@ impl<E> MyTrait for Echo<E> where E: MyTrait {}
|
||||
|
||||
pub enum Foxtrot<F> { Foxtrot1(F) }
|
||||
|
||||
// @has foo/enum.Foxtrot.html '//*[@class="impl"]//code' \
|
||||
// @has foo/enum.Foxtrot.html '//*[@class="impl has-srclink"]//code' \
|
||||
// "impl<F> MyTrait for Foxtrot<F> where F: MyTrait"
|
||||
// @has foo/trait.MyTrait.html '//*[@id="implementors-list"]//code' \
|
||||
// "impl<F> MyTrait for Foxtrot<F> where F: MyTrait"
|
||||
|
@ -463,7 +463,7 @@ fn maybe_redirect(source: &str) -> Option<String> {
|
||||
const REDIRECT: &str = "<p>Redirecting to <a href=";
|
||||
|
||||
let mut lines = source.lines();
|
||||
let redirect_line = lines.nth(6)?;
|
||||
let redirect_line = lines.nth(7)?;
|
||||
|
||||
redirect_line.find(REDIRECT).map(|i| {
|
||||
let rest = &redirect_line[(i + REDIRECT.len() + 1)..];
|
||||
|
Loading…
Reference in New Issue
Block a user