rustdoc: remove unnecessary wrapper div.item-decl from HTML
This commit is contained in:
parent
006ca9b14d
commit
7080f80e8b
@ -58,11 +58,11 @@ pub(crate) fn render_example_with_highlighting(
|
||||
write_footer(out, playground_button);
|
||||
}
|
||||
|
||||
/// Highlights `src` as a macro, returning the HTML output.
|
||||
pub(crate) fn render_macro_with_highlighting(src: &str, out: &mut Buffer) {
|
||||
write_header(out, "macro", None, Tooltip::None);
|
||||
/// Highlights `src` as an item-decl, returning the HTML output.
|
||||
pub(crate) fn render_item_decl_with_highlighting(src: &str, out: &mut Buffer) {
|
||||
write!(out, "<pre class=\"rust item-decl\">");
|
||||
write_code(out, src, None, None);
|
||||
write_footer(out, None);
|
||||
write!(out, "</pre>");
|
||||
}
|
||||
|
||||
/// Highlights `src` as a source code page, returning the HTML output.
|
||||
|
@ -530,26 +530,24 @@ fn item_function(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, f: &cle
|
||||
let notable_traits =
|
||||
f.decl.output.as_return().and_then(|output| notable_traits_button(output, cx));
|
||||
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
w.reserve(header_len);
|
||||
write!(
|
||||
w,
|
||||
"{vis}{constness}{asyncness}{unsafety}{abi}fn \
|
||||
{name}{generics}{decl}{notable_traits}{where_clause}",
|
||||
vis = visibility,
|
||||
constness = constness,
|
||||
asyncness = asyncness,
|
||||
unsafety = unsafety,
|
||||
abi = abi,
|
||||
name = name,
|
||||
generics = f.generics.print(cx),
|
||||
where_clause = print_where_clause(&f.generics, cx, 0, Ending::Newline),
|
||||
decl = f.decl.full_print(header_len, 0, cx),
|
||||
notable_traits = notable_traits.unwrap_or_default(),
|
||||
);
|
||||
});
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
w.reserve(header_len);
|
||||
write!(
|
||||
w,
|
||||
"{vis}{constness}{asyncness}{unsafety}{abi}fn \
|
||||
{name}{generics}{decl}{notable_traits}{where_clause}",
|
||||
vis = visibility,
|
||||
constness = constness,
|
||||
asyncness = asyncness,
|
||||
unsafety = unsafety,
|
||||
abi = abi,
|
||||
name = name,
|
||||
generics = f.generics.print(cx),
|
||||
where_clause = print_where_clause(&f.generics, cx, 0, Ending::Newline),
|
||||
decl = f.decl.full_print(header_len, 0, cx),
|
||||
notable_traits = notable_traits.unwrap_or_default(),
|
||||
);
|
||||
});
|
||||
document(w, cx, it, None, HeadingOffset::H2);
|
||||
}
|
||||
@ -569,145 +567,140 @@ fn item_trait(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean:
|
||||
let must_implement_one_of_functions = tcx.trait_def(t.def_id).must_implement_one_of.clone();
|
||||
|
||||
// Output the trait definition
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
write!(
|
||||
w,
|
||||
"{}{}{}trait {}{}{}",
|
||||
visibility_print_with_space(it.visibility(tcx), it.item_id, cx),
|
||||
t.unsafety(tcx).print_with_space(),
|
||||
if t.is_auto(tcx) { "auto " } else { "" },
|
||||
it.name.unwrap(),
|
||||
t.generics.print(cx),
|
||||
bounds
|
||||
);
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
write!(
|
||||
w,
|
||||
"{}{}{}trait {}{}{}",
|
||||
visibility_print_with_space(it.visibility(tcx), it.item_id, cx),
|
||||
t.unsafety(tcx).print_with_space(),
|
||||
if t.is_auto(tcx) { "auto " } else { "" },
|
||||
it.name.unwrap(),
|
||||
t.generics.print(cx),
|
||||
bounds
|
||||
);
|
||||
|
||||
if !t.generics.where_predicates.is_empty() {
|
||||
write!(w, "{}", print_where_clause(&t.generics, cx, 0, Ending::Newline));
|
||||
} else {
|
||||
w.write_str(" ");
|
||||
if !t.generics.where_predicates.is_empty() {
|
||||
write!(w, "{}", print_where_clause(&t.generics, cx, 0, Ending::Newline));
|
||||
} else {
|
||||
w.write_str(" ");
|
||||
}
|
||||
|
||||
if t.items.is_empty() {
|
||||
w.write_str("{ }");
|
||||
} else {
|
||||
// FIXME: we should be using a derived_id for the Anchors here
|
||||
w.write_str("{\n");
|
||||
let mut toggle = false;
|
||||
|
||||
// If there are too many associated types, hide _everything_
|
||||
if should_hide_fields(count_types) {
|
||||
toggle = true;
|
||||
toggle_open(
|
||||
w,
|
||||
format_args!("{} associated items", count_types + count_consts + count_methods),
|
||||
);
|
||||
}
|
||||
|
||||
if t.items.is_empty() {
|
||||
w.write_str("{ }");
|
||||
} else {
|
||||
// FIXME: we should be using a derived_id for the Anchors here
|
||||
w.write_str("{\n");
|
||||
let mut toggle = false;
|
||||
|
||||
// If there are too many associated types, hide _everything_
|
||||
if should_hide_fields(count_types) {
|
||||
toggle = true;
|
||||
toggle_open(
|
||||
w,
|
||||
format_args!(
|
||||
"{} associated items",
|
||||
count_types + count_consts + count_methods
|
||||
),
|
||||
);
|
||||
}
|
||||
for types in [&required_types, &provided_types] {
|
||||
for t in types {
|
||||
render_assoc_item(
|
||||
w,
|
||||
t,
|
||||
AssocItemLink::Anchor(None),
|
||||
ItemType::Trait,
|
||||
cx,
|
||||
RenderMode::Normal,
|
||||
);
|
||||
w.write_str(";\n");
|
||||
}
|
||||
}
|
||||
// If there are too many associated constants, hide everything after them
|
||||
// We also do this if the types + consts is large because otherwise we could
|
||||
// render a bunch of types and _then_ a bunch of consts just because both were
|
||||
// _just_ under the limit
|
||||
if !toggle && should_hide_fields(count_types + count_consts) {
|
||||
toggle = true;
|
||||
toggle_open(
|
||||
w,
|
||||
format_args!(
|
||||
"{} associated constant{} and {} method{}",
|
||||
count_consts,
|
||||
pluralize(count_consts),
|
||||
count_methods,
|
||||
pluralize(count_methods),
|
||||
),
|
||||
);
|
||||
}
|
||||
if count_types != 0 && (count_consts != 0 || count_methods != 0) {
|
||||
w.write_str("\n");
|
||||
}
|
||||
for consts in [&required_consts, &provided_consts] {
|
||||
for c in consts {
|
||||
render_assoc_item(
|
||||
w,
|
||||
c,
|
||||
AssocItemLink::Anchor(None),
|
||||
ItemType::Trait,
|
||||
cx,
|
||||
RenderMode::Normal,
|
||||
);
|
||||
w.write_str(";\n");
|
||||
}
|
||||
}
|
||||
if !toggle && should_hide_fields(count_methods) {
|
||||
toggle = true;
|
||||
toggle_open(w, format_args!("{} methods", count_methods));
|
||||
}
|
||||
if count_consts != 0 && count_methods != 0 {
|
||||
w.write_str("\n");
|
||||
}
|
||||
for (pos, m) in required_methods.iter().enumerate() {
|
||||
for types in [&required_types, &provided_types] {
|
||||
for t in types {
|
||||
render_assoc_item(
|
||||
w,
|
||||
m,
|
||||
t,
|
||||
AssocItemLink::Anchor(None),
|
||||
ItemType::Trait,
|
||||
cx,
|
||||
RenderMode::Normal,
|
||||
);
|
||||
w.write_str(";\n");
|
||||
|
||||
if pos < required_methods.len() - 1 {
|
||||
w.write_str("<span class=\"item-spacer\"></span>");
|
||||
}
|
||||
}
|
||||
if !required_methods.is_empty() && !provided_methods.is_empty() {
|
||||
w.write_str("\n");
|
||||
}
|
||||
for (pos, m) in provided_methods.iter().enumerate() {
|
||||
}
|
||||
// If there are too many associated constants, hide everything after them
|
||||
// We also do this if the types + consts is large because otherwise we could
|
||||
// render a bunch of types and _then_ a bunch of consts just because both were
|
||||
// _just_ under the limit
|
||||
if !toggle && should_hide_fields(count_types + count_consts) {
|
||||
toggle = true;
|
||||
toggle_open(
|
||||
w,
|
||||
format_args!(
|
||||
"{} associated constant{} and {} method{}",
|
||||
count_consts,
|
||||
pluralize(count_consts),
|
||||
count_methods,
|
||||
pluralize(count_methods),
|
||||
),
|
||||
);
|
||||
}
|
||||
if count_types != 0 && (count_consts != 0 || count_methods != 0) {
|
||||
w.write_str("\n");
|
||||
}
|
||||
for consts in [&required_consts, &provided_consts] {
|
||||
for c in consts {
|
||||
render_assoc_item(
|
||||
w,
|
||||
m,
|
||||
c,
|
||||
AssocItemLink::Anchor(None),
|
||||
ItemType::Trait,
|
||||
cx,
|
||||
RenderMode::Normal,
|
||||
);
|
||||
match *m.kind {
|
||||
clean::MethodItem(ref inner, _)
|
||||
if !inner.generics.where_predicates.is_empty() =>
|
||||
{
|
||||
w.write_str(",\n { ... }\n");
|
||||
}
|
||||
_ => {
|
||||
w.write_str(" { ... }\n");
|
||||
}
|
||||
}
|
||||
|
||||
if pos < provided_methods.len() - 1 {
|
||||
w.write_str("<span class=\"item-spacer\"></span>");
|
||||
}
|
||||
w.write_str(";\n");
|
||||
}
|
||||
if toggle {
|
||||
toggle_close(w);
|
||||
}
|
||||
w.write_str("}");
|
||||
}
|
||||
});
|
||||
if !toggle && should_hide_fields(count_methods) {
|
||||
toggle = true;
|
||||
toggle_open(w, format_args!("{} methods", count_methods));
|
||||
}
|
||||
if count_consts != 0 && count_methods != 0 {
|
||||
w.write_str("\n");
|
||||
}
|
||||
for (pos, m) in required_methods.iter().enumerate() {
|
||||
render_assoc_item(
|
||||
w,
|
||||
m,
|
||||
AssocItemLink::Anchor(None),
|
||||
ItemType::Trait,
|
||||
cx,
|
||||
RenderMode::Normal,
|
||||
);
|
||||
w.write_str(";\n");
|
||||
|
||||
if pos < required_methods.len() - 1 {
|
||||
w.write_str("<span class=\"item-spacer\"></span>");
|
||||
}
|
||||
}
|
||||
if !required_methods.is_empty() && !provided_methods.is_empty() {
|
||||
w.write_str("\n");
|
||||
}
|
||||
for (pos, m) in provided_methods.iter().enumerate() {
|
||||
render_assoc_item(
|
||||
w,
|
||||
m,
|
||||
AssocItemLink::Anchor(None),
|
||||
ItemType::Trait,
|
||||
cx,
|
||||
RenderMode::Normal,
|
||||
);
|
||||
match *m.kind {
|
||||
clean::MethodItem(ref inner, _)
|
||||
if !inner.generics.where_predicates.is_empty() =>
|
||||
{
|
||||
w.write_str(",\n { ... }\n");
|
||||
}
|
||||
_ => {
|
||||
w.write_str(" { ... }\n");
|
||||
}
|
||||
}
|
||||
|
||||
if pos < provided_methods.len() - 1 {
|
||||
w.write_str("<span class=\"item-spacer\"></span>");
|
||||
}
|
||||
}
|
||||
if toggle {
|
||||
toggle_close(w);
|
||||
}
|
||||
w.write_str("}");
|
||||
}
|
||||
});
|
||||
|
||||
// Trait documentation
|
||||
@ -1050,18 +1043,16 @@ fn item_trait(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean:
|
||||
}
|
||||
|
||||
fn item_trait_alias(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean::TraitAlias) {
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
write!(
|
||||
w,
|
||||
"trait {}{}{} = {};",
|
||||
it.name.unwrap(),
|
||||
t.generics.print(cx),
|
||||
print_where_clause(&t.generics, cx, 0, Ending::Newline),
|
||||
bounds(&t.bounds, true, cx)
|
||||
);
|
||||
});
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
write!(
|
||||
w,
|
||||
"trait {}{}{} = {};",
|
||||
it.name.unwrap(),
|
||||
t.generics.print(cx),
|
||||
print_where_clause(&t.generics, cx, 0, Ending::Newline),
|
||||
bounds(&t.bounds, true, cx)
|
||||
);
|
||||
});
|
||||
|
||||
document(w, cx, it, None, HeadingOffset::H2);
|
||||
@ -1074,18 +1065,16 @@ fn item_trait_alias(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &
|
||||
}
|
||||
|
||||
fn item_opaque_ty(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean::OpaqueTy) {
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
write!(
|
||||
w,
|
||||
"type {}{}{where_clause} = impl {bounds};",
|
||||
it.name.unwrap(),
|
||||
t.generics.print(cx),
|
||||
where_clause = print_where_clause(&t.generics, cx, 0, Ending::Newline),
|
||||
bounds = bounds(&t.bounds, false, cx),
|
||||
);
|
||||
});
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
write!(
|
||||
w,
|
||||
"type {}{}{where_clause} = impl {bounds};",
|
||||
it.name.unwrap(),
|
||||
t.generics.print(cx),
|
||||
where_clause = print_where_clause(&t.generics, cx, 0, Ending::Newline),
|
||||
bounds = bounds(&t.bounds, false, cx),
|
||||
);
|
||||
});
|
||||
|
||||
document(w, cx, it, None, HeadingOffset::H2);
|
||||
@ -1113,7 +1102,7 @@ fn item_typedef(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clea
|
||||
});
|
||||
}
|
||||
|
||||
wrap_into_item_decl(w, |w| write_content(w, cx, it, t));
|
||||
write_content(w, cx, it, t);
|
||||
|
||||
document(w, cx, it, None, HeadingOffset::H2);
|
||||
|
||||
@ -1127,11 +1116,9 @@ fn item_typedef(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clea
|
||||
}
|
||||
|
||||
fn item_union(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, s: &clean::Union) {
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
render_union(w, it, Some(&s.generics), &s.fields, "", cx);
|
||||
});
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
render_union(w, it, Some(&s.generics), &s.fields, "", cx);
|
||||
});
|
||||
|
||||
document(w, cx, it, None, HeadingOffset::H2);
|
||||
@ -1192,60 +1179,58 @@ fn print_tuple_struct_fields(w: &mut Buffer, cx: &Context<'_>, s: &[clean::Item]
|
||||
fn item_enum(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, e: &clean::Enum) {
|
||||
let tcx = cx.tcx();
|
||||
let count_variants = e.variants().count();
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
write!(
|
||||
w,
|
||||
"{}enum {}{}",
|
||||
visibility_print_with_space(it.visibility(tcx), it.item_id, cx),
|
||||
it.name.unwrap(),
|
||||
e.generics.print(cx),
|
||||
);
|
||||
if !print_where_clause_and_check(w, &e.generics, cx) {
|
||||
// If there wasn't a `where` clause, we add a whitespace.
|
||||
w.write_str(" ");
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_pre(w, it, "");
|
||||
write!(
|
||||
w,
|
||||
"{}enum {}{}",
|
||||
visibility_print_with_space(it.visibility(tcx), it.item_id, cx),
|
||||
it.name.unwrap(),
|
||||
e.generics.print(cx),
|
||||
);
|
||||
if !print_where_clause_and_check(w, &e.generics, cx) {
|
||||
// If there wasn't a `where` clause, we add a whitespace.
|
||||
w.write_str(" ");
|
||||
}
|
||||
|
||||
let variants_stripped = e.has_stripped_entries();
|
||||
if count_variants == 0 && !variants_stripped {
|
||||
w.write_str("{}");
|
||||
} else {
|
||||
w.write_str("{\n");
|
||||
let toggle = should_hide_fields(count_variants);
|
||||
if toggle {
|
||||
toggle_open(w, format_args!("{} variants", count_variants));
|
||||
}
|
||||
for v in e.variants() {
|
||||
w.write_str(" ");
|
||||
let name = v.name.unwrap();
|
||||
match *v.kind {
|
||||
// FIXME(#101337): Show discriminant
|
||||
clean::VariantItem(ref var) => match var.kind {
|
||||
clean::VariantKind::CLike => write!(w, "{}", name),
|
||||
clean::VariantKind::Tuple(ref s) => {
|
||||
write!(w, "{}(", name);
|
||||
print_tuple_struct_fields(w, cx, s);
|
||||
w.write_str(")");
|
||||
}
|
||||
clean::VariantKind::Struct(ref s) => {
|
||||
render_struct(w, v, None, None, &s.fields, " ", false, cx);
|
||||
}
|
||||
},
|
||||
_ => unreachable!(),
|
||||
}
|
||||
w.write_str(",\n");
|
||||
}
|
||||
|
||||
let variants_stripped = e.has_stripped_entries();
|
||||
if count_variants == 0 && !variants_stripped {
|
||||
w.write_str("{}");
|
||||
} else {
|
||||
w.write_str("{\n");
|
||||
let toggle = should_hide_fields(count_variants);
|
||||
if toggle {
|
||||
toggle_open(w, format_args!("{} variants", count_variants));
|
||||
}
|
||||
for v in e.variants() {
|
||||
w.write_str(" ");
|
||||
let name = v.name.unwrap();
|
||||
match *v.kind {
|
||||
// FIXME(#101337): Show discriminant
|
||||
clean::VariantItem(ref var) => match var.kind {
|
||||
clean::VariantKind::CLike => write!(w, "{}", name),
|
||||
clean::VariantKind::Tuple(ref s) => {
|
||||
write!(w, "{}(", name);
|
||||
print_tuple_struct_fields(w, cx, s);
|
||||
w.write_str(")");
|
||||
}
|
||||
clean::VariantKind::Struct(ref s) => {
|
||||
render_struct(w, v, None, None, &s.fields, " ", false, cx);
|
||||
}
|
||||
},
|
||||
_ => unreachable!(),
|
||||
}
|
||||
w.write_str(",\n");
|
||||
}
|
||||
|
||||
if variants_stripped {
|
||||
w.write_str(" // some variants omitted\n");
|
||||
}
|
||||
if toggle {
|
||||
toggle_close(w);
|
||||
}
|
||||
w.write_str("}");
|
||||
if variants_stripped {
|
||||
w.write_str(" // some variants omitted\n");
|
||||
}
|
||||
});
|
||||
if toggle {
|
||||
toggle_close(w);
|
||||
}
|
||||
w.write_str("}");
|
||||
}
|
||||
});
|
||||
|
||||
document(w, cx, it, None, HeadingOffset::H2);
|
||||
@ -1346,38 +1331,30 @@ fn item_enum(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, e: &clean::
|
||||
}
|
||||
|
||||
fn item_macro(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean::Macro) {
|
||||
wrap_into_item_decl(w, |w| {
|
||||
highlight::render_macro_with_highlighting(&t.source, w);
|
||||
});
|
||||
highlight::render_item_decl_with_highlighting(&t.source, w);
|
||||
document(w, cx, it, None, HeadingOffset::H2)
|
||||
}
|
||||
|
||||
fn item_proc_macro(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, m: &clean::ProcMacro) {
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
let name = it.name.expect("proc-macros always have names");
|
||||
match m.kind {
|
||||
MacroKind::Bang => {
|
||||
wrap_item(w, |w| {
|
||||
write!(w, "{}!() {{ /* proc-macro */ }}", name);
|
||||
});
|
||||
write!(w, "{}!() {{ /* proc-macro */ }}", name);
|
||||
}
|
||||
MacroKind::Attr => {
|
||||
wrap_item(w, |w| {
|
||||
write!(w, "#[{}]", name);
|
||||
});
|
||||
write!(w, "#[{}]", name);
|
||||
}
|
||||
MacroKind::Derive => {
|
||||
wrap_item(w, |w| {
|
||||
write!(w, "#[derive({})]", name);
|
||||
if !m.helpers.is_empty() {
|
||||
w.push_str("\n{\n");
|
||||
w.push_str(" // Attributes available to this derive:\n");
|
||||
for attr in &m.helpers {
|
||||
writeln!(w, " #[{}]", attr);
|
||||
}
|
||||
w.push_str("}\n");
|
||||
write!(w, "#[derive({})]", name);
|
||||
if !m.helpers.is_empty() {
|
||||
w.push_str("\n{\n");
|
||||
w.push_str(" // Attributes available to this derive:\n");
|
||||
for attr in &m.helpers {
|
||||
writeln!(w, " #[{}]", attr);
|
||||
}
|
||||
});
|
||||
w.push_str("}\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -1400,61 +1377,57 @@ fn item_primitive(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item) {
|
||||
}
|
||||
|
||||
fn item_constant(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, c: &clean::Constant) {
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
let tcx = cx.tcx();
|
||||
render_attributes_in_code(w, it);
|
||||
wrap_item(w, |w| {
|
||||
let tcx = cx.tcx();
|
||||
render_attributes_in_code(w, it);
|
||||
|
||||
write!(
|
||||
w,
|
||||
"{vis}const {name}: {typ}",
|
||||
vis = visibility_print_with_space(it.visibility(tcx), it.item_id, cx),
|
||||
name = it.name.unwrap(),
|
||||
typ = c.type_.print(cx),
|
||||
);
|
||||
write!(
|
||||
w,
|
||||
"{vis}const {name}: {typ}",
|
||||
vis = visibility_print_with_space(it.visibility(tcx), it.item_id, cx),
|
||||
name = it.name.unwrap(),
|
||||
typ = c.type_.print(cx),
|
||||
);
|
||||
|
||||
// FIXME: The code below now prints
|
||||
// ` = _; // 100i32`
|
||||
// if the expression is
|
||||
// `50 + 50`
|
||||
// which looks just wrong.
|
||||
// Should we print
|
||||
// ` = 100i32;`
|
||||
// instead?
|
||||
// FIXME: The code below now prints
|
||||
// ` = _; // 100i32`
|
||||
// if the expression is
|
||||
// `50 + 50`
|
||||
// which looks just wrong.
|
||||
// Should we print
|
||||
// ` = 100i32;`
|
||||
// instead?
|
||||
|
||||
let value = c.value(tcx);
|
||||
let is_literal = c.is_literal(tcx);
|
||||
let expr = c.expr(tcx);
|
||||
if value.is_some() || is_literal {
|
||||
write!(w, " = {expr};", expr = Escape(&expr));
|
||||
} else {
|
||||
w.write_str(";");
|
||||
}
|
||||
let value = c.value(tcx);
|
||||
let is_literal = c.is_literal(tcx);
|
||||
let expr = c.expr(tcx);
|
||||
if value.is_some() || is_literal {
|
||||
write!(w, " = {expr};", expr = Escape(&expr));
|
||||
} else {
|
||||
w.write_str(";");
|
||||
}
|
||||
|
||||
if !is_literal {
|
||||
if let Some(value) = &value {
|
||||
let value_lowercase = value.to_lowercase();
|
||||
let expr_lowercase = expr.to_lowercase();
|
||||
if !is_literal {
|
||||
if let Some(value) = &value {
|
||||
let value_lowercase = value.to_lowercase();
|
||||
let expr_lowercase = expr.to_lowercase();
|
||||
|
||||
if value_lowercase != expr_lowercase
|
||||
&& value_lowercase.trim_end_matches("i32") != expr_lowercase
|
||||
{
|
||||
write!(w, " // {value}", value = Escape(value));
|
||||
}
|
||||
if value_lowercase != expr_lowercase
|
||||
&& value_lowercase.trim_end_matches("i32") != expr_lowercase
|
||||
{
|
||||
write!(w, " // {value}", value = Escape(value));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
document(w, cx, it, None, HeadingOffset::H2)
|
||||
}
|
||||
|
||||
fn item_struct(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, s: &clean::Struct) {
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_code(w, it);
|
||||
render_struct(w, it, Some(&s.generics), s.ctor_kind, &s.fields, "", true, cx);
|
||||
});
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_code(w, it);
|
||||
render_struct(w, it, Some(&s.generics), s.ctor_kind, &s.fields, "", true, cx);
|
||||
});
|
||||
|
||||
document(w, cx, it, None, HeadingOffset::H2);
|
||||
@ -1503,34 +1476,30 @@ fn item_struct(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, s: &clean
|
||||
}
|
||||
|
||||
fn item_static(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, s: &clean::Static) {
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_code(w, it);
|
||||
write!(
|
||||
w,
|
||||
"{vis}static {mutability}{name}: {typ}",
|
||||
vis = visibility_print_with_space(it.visibility(cx.tcx()), it.item_id, cx),
|
||||
mutability = s.mutability.print_with_space(),
|
||||
name = it.name.unwrap(),
|
||||
typ = s.type_.print(cx)
|
||||
);
|
||||
});
|
||||
wrap_item(w, |w| {
|
||||
render_attributes_in_code(w, it);
|
||||
write!(
|
||||
w,
|
||||
"{vis}static {mutability}{name}: {typ}",
|
||||
vis = visibility_print_with_space(it.visibility(cx.tcx()), it.item_id, cx),
|
||||
mutability = s.mutability.print_with_space(),
|
||||
name = it.name.unwrap(),
|
||||
typ = s.type_.print(cx)
|
||||
);
|
||||
});
|
||||
document(w, cx, it, None, HeadingOffset::H2)
|
||||
}
|
||||
|
||||
fn item_foreign_type(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item) {
|
||||
wrap_into_item_decl(w, |w| {
|
||||
wrap_item(w, |w| {
|
||||
w.write_str("extern {\n");
|
||||
render_attributes_in_code(w, it);
|
||||
write!(
|
||||
w,
|
||||
" {}type {};\n}}",
|
||||
visibility_print_with_space(it.visibility(cx.tcx()), it.item_id, cx),
|
||||
it.name.unwrap(),
|
||||
);
|
||||
});
|
||||
wrap_item(w, |w| {
|
||||
w.write_str("extern {\n");
|
||||
render_attributes_in_code(w, it);
|
||||
write!(
|
||||
w,
|
||||
" {}type {};\n}}",
|
||||
visibility_print_with_space(it.visibility(cx.tcx()), it.item_id, cx),
|
||||
it.name.unwrap(),
|
||||
);
|
||||
});
|
||||
|
||||
document(w, cx, it, None, HeadingOffset::H2);
|
||||
@ -1609,20 +1578,11 @@ fn bounds(t_bounds: &[clean::GenericBound], trait_alias: bool, cx: &Context<'_>)
|
||||
bounds
|
||||
}
|
||||
|
||||
fn wrap_into_item_decl<F>(w: &mut Buffer, f: F)
|
||||
where
|
||||
F: FnOnce(&mut Buffer),
|
||||
{
|
||||
w.write_str("<div class=\"item-decl\">");
|
||||
f(w);
|
||||
w.write_str("</div>")
|
||||
}
|
||||
|
||||
fn wrap_item<F>(w: &mut Buffer, f: F)
|
||||
where
|
||||
F: FnOnce(&mut Buffer),
|
||||
{
|
||||
w.write_str(r#"<pre class="rust"><code>"#);
|
||||
w.write_str(r#"<pre class="rust item-decl"><code>"#);
|
||||
f(w);
|
||||
w.write_str("</code></pre>");
|
||||
}
|
||||
|
@ -335,7 +335,7 @@ pre {
|
||||
padding: 14px;
|
||||
line-height: 1.5; /* https://github.com/rust-lang/rust/issues/105906 */
|
||||
}
|
||||
.item-decl pre {
|
||||
pre.item-decl {
|
||||
overflow-x: auto;
|
||||
}
|
||||
/* This rule allows to have scrolling on the X axis. */
|
||||
|
@ -9,16 +9,16 @@ size: (1080, 600)
|
||||
// Check that their content is inside <pre><code>
|
||||
assert-count: (".example-wrap pre > code", 4)
|
||||
// Check that function signature is inside <pre><code>
|
||||
assert: ".item-decl pre.rust > code"
|
||||
assert: "pre.rust.item-decl > code"
|
||||
|
||||
goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html"
|
||||
assert: ".item-decl pre.rust > code"
|
||||
assert: "pre.rust.item-decl > code"
|
||||
|
||||
goto: "file://" + |DOC_PATH| + "/test_docs/enum.AnEnum.html"
|
||||
assert: ".item-decl pre.rust > code"
|
||||
assert: "pre.rust.item-decl > code"
|
||||
|
||||
goto: "file://" + |DOC_PATH| + "/test_docs/trait.AnotherOne.html"
|
||||
assert: ".item-decl pre.rust > code"
|
||||
assert: "pre.rust.item-decl > code"
|
||||
|
||||
goto: "file://" + |DOC_PATH| + "/test_docs/type.SomeType.html"
|
||||
assert: ".item-decl pre.rust > code"
|
||||
assert: "pre.rust.item-decl > code"
|
||||
|
@ -1,6 +1,6 @@
|
||||
// This test checks that the font weight is correctly applied.
|
||||
goto: "file://" + |DOC_PATH| + "/lib2/struct.Foo.html"
|
||||
assert-css: ("//*[@class='item-decl']//a[text()='Alias']", {"font-weight": "400"})
|
||||
assert-css: ("//*[@class='rust item-decl']//a[text()='Alias']", {"font-weight": "400"})
|
||||
assert-css: (
|
||||
"//*[@class='structfield small-section-header']//a[text()='Alias']",
|
||||
{"font-weight": "400"},
|
||||
@ -19,8 +19,7 @@ goto: "file://" + |DOC_PATH| + "/lib2/trait.Trait.html"
|
||||
|
||||
// This is a complex selector, so here's how it works:
|
||||
//
|
||||
// * //*[@class='item-decl'] — selects element of any tag with classes docblock and item-decl
|
||||
// * /pre[@class='rust'] — selects immediate child with tag pre and class rust
|
||||
// * //pre[@class='rust item-decl'] — selects item-decl code block
|
||||
// * /code — selects immediate child with tag code
|
||||
// * /a[@class='constant'] — selects immediate child with tag a and class constant
|
||||
// * //text() — selects child that is text node
|
||||
@ -29,11 +28,11 @@ goto: "file://" + |DOC_PATH| + "/lib2/trait.Trait.html"
|
||||
// This uses '/parent::*' as a proxy for the style of the text node.
|
||||
// We can't just select the '<a>' because intermediate tags could be added.
|
||||
assert-count: (
|
||||
"//*[@class='item-decl']/pre[@class='rust']/code/a[@class='constant']//text()/parent::*",
|
||||
"//pre[@class='rust item-decl']/code/a[@class='constant']//text()/parent::*",
|
||||
1,
|
||||
)
|
||||
assert-css: (
|
||||
"//*[@class='item-decl']/pre[@class='rust']/code/a[@class='constant']//text()/parent::*",
|
||||
"//pre[@class='rust item-decl']/code/a[@class='constant']//text()/parent::*",
|
||||
{"font-weight": "400"},
|
||||
)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// This test checks that code blocks in list are supported.
|
||||
goto: "file://" + |DOC_PATH| + "/test_docs/index.html"
|
||||
goto: "./fn.check_list_code_block.html"
|
||||
assert: (".item-decl pre.rust")
|
||||
assert: ("pre.rust.item-decl")
|
||||
|
@ -12,7 +12,7 @@ size: (1100, 800)
|
||||
// Logically, the <body> scroll width should be the width of the window.
|
||||
assert-property: ("body", {"scrollWidth": "1100"})
|
||||
// However, since there is overflow in the type declaration, its scroll width is bigger.
|
||||
assert-property: (".item-decl pre", {"scrollWidth": "1324"})
|
||||
assert-property: ("pre.item-decl", {"scrollWidth": "1324"})
|
||||
|
||||
// In the table-ish view on the module index, the name should not be wrapped more than necessary.
|
||||
goto: "file://" + |DOC_PATH| + "/lib2/too_long/index.html"
|
||||
@ -24,7 +24,7 @@ assert-property: ("body", {"scrollWidth": "1100"})
|
||||
// We now check that the section width hasn't grown because of it.
|
||||
assert-property: ("#main-content", {"scrollWidth": "840"})
|
||||
// And now checking that it has scrollable content.
|
||||
assert-property: (".item-decl pre", {"scrollWidth": "1103"})
|
||||
assert-property: ("pre.item-decl", {"scrollWidth": "1103"})
|
||||
|
||||
// ... and constant.
|
||||
// On a sidenote, it also checks that the (very) long title isn't changing the docblock width.
|
||||
@ -33,7 +33,7 @@ assert-property: ("body", {"scrollWidth": "1100"})
|
||||
// We now check that the section width hasn't grown because of it.
|
||||
assert-property: ("#main-content", {"scrollWidth": "840"})
|
||||
// And now checking that it has scrollable content.
|
||||
assert-property: (".item-decl pre", {"scrollWidth": "950"})
|
||||
assert-property: ("pre.item-decl", {"scrollWidth": "950"})
|
||||
|
||||
// On mobile:
|
||||
size: (600, 600)
|
||||
@ -65,12 +65,12 @@ compare-elements-position-false: (".main-heading h1", ".main-heading .out-of-ban
|
||||
goto: "file://" + |DOC_PATH| + "/lib2/scroll_traits/trait.Iterator.html"
|
||||
|
||||
click: ".item-decl .type-contents-toggle"
|
||||
assert-property: (".item-decl > pre", {"scrollLeft": 0})
|
||||
scroll-to: "//*[@class='item-decl']//details/a[text()='String']"
|
||||
assert-property-false: (".item-decl > pre", {"scrollLeft": 0})
|
||||
assert-property: ("pre.item-decl", {"scrollLeft": 0})
|
||||
scroll-to: "//*[@class='rust item-decl']//details/a[text()='String']"
|
||||
assert-property-false: ("pre.item-decl", {"scrollLeft": 0})
|
||||
|
||||
// Then on an item without "hidden methods".
|
||||
goto: "file://" + |DOC_PATH| + "/lib2/scroll_traits/trait.TraitWithLongItemsName.html"
|
||||
assert-property: (".item-decl > pre", {"scrollLeft": 0})
|
||||
scroll-to: "//*[@class='item-decl']//code/a[text()='String']"
|
||||
assert-property-false: (".item-decl > pre", {"scrollLeft": 0})
|
||||
assert-property: ("pre.item-decl", {"scrollLeft": 0})
|
||||
scroll-to: "//*[@class='rust item-decl']//code/a[text()='String']"
|
||||
assert-property-false: ("pre.item-decl", {"scrollLeft": 0})
|
||||
|
@ -4,25 +4,25 @@
|
||||
pub struct MyBox<T: ?Sized>(*const T);
|
||||
|
||||
// @has 'foo/fn.alpha.html'
|
||||
// @snapshot link_slice_u32 - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link_slice_u32 - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn alpha() -> &'static [u32; 1] {
|
||||
loop {}
|
||||
}
|
||||
|
||||
// @has 'foo/fn.beta.html'
|
||||
// @snapshot link_slice_generic - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link_slice_generic - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn beta<T>() -> &'static [T; 1] {
|
||||
loop {}
|
||||
}
|
||||
|
||||
// @has 'foo/fn.gamma.html'
|
||||
// @snapshot link_box_u32 - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link_box_u32 - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn gamma() -> MyBox<[u32; 1]> {
|
||||
loop {}
|
||||
}
|
||||
|
||||
// @has 'foo/fn.delta.html'
|
||||
// @snapshot link_box_generic - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link_box_generic - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn delta<T>() -> MyBox<[T; 1]> {
|
||||
loop {}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
pub trait Foo {
|
||||
// @has assoc_consts/trait.Foo.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has assoc_consts/trait.Foo.html '//pre[@class="rust item-decl"]' \
|
||||
// 'const FOO: usize = 13usize;'
|
||||
// @has - '//*[@id="associatedconstant.FOO"]' 'const FOO: usize'
|
||||
const FOO: usize = 12 + 1;
|
||||
|
@ -10,5 +10,5 @@ pub trait AsExpression<T> {
|
||||
}
|
||||
|
||||
// @has foo/type.AsExprOf.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'type AsExprOf<Item, Type> = <Item as AsExpression<Type>>::Expression;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'type AsExprOf<Item, Type> = <Item as AsExpression<Type>>::Expression;'
|
||||
pub type AsExprOf<Item, Type> = <Item as AsExpression<Type>>::Expression;
|
||||
|
@ -12,8 +12,8 @@ pub trait Index<I: ?Sized> {
|
||||
}
|
||||
|
||||
// @has assoc_types/fn.use_output.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' '-> &T::Output'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]//a[@href="trait.Index.html#associatedtype.Output"]' 'Output'
|
||||
// @has - '//pre[@class="rust item-decl"]' '-> &T::Output'
|
||||
// @has - '//pre[@class="rust item-decl"]//a[@href="trait.Index.html#associatedtype.Output"]' 'Output'
|
||||
pub fn use_output<T: Index<usize>>(obj: &T, index: usize) -> &T::Output {
|
||||
obj.index(index)
|
||||
}
|
||||
@ -23,13 +23,13 @@ pub trait Feed {
|
||||
}
|
||||
|
||||
// @has assoc_types/fn.use_input.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'T::Input'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]//a[@href="trait.Feed.html#associatedtype.Input"]' 'Input'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'T::Input'
|
||||
// @has - '//pre[@class="rust item-decl"]//a[@href="trait.Feed.html#associatedtype.Input"]' 'Input'
|
||||
pub fn use_input<T: Feed>(_feed: &T, _element: T::Input) { }
|
||||
|
||||
// @has assoc_types/fn.cmp_input.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'where T::Input: PartialEq<U::Input>'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]//a[@href="trait.Feed.html#associatedtype.Input"]' 'Input'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'where T::Input: PartialEq<U::Input>'
|
||||
// @has - '//pre[@class="rust item-decl"]//a[@href="trait.Feed.html#associatedtype.Input"]' 'Input'
|
||||
pub fn cmp_input<T: Feed, U: Feed>(a: &T::Input, b: &U::Input) -> bool
|
||||
where T::Input: PartialEq<U::Input>
|
||||
{
|
||||
|
@ -1,35 +1,35 @@
|
||||
// edition:2018
|
||||
// @has async_fn/fn.foo.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn foo() -> Option<Foo>'
|
||||
// @has async_fn/fn.foo.html '//pre[@class="rust item-decl"]' 'pub async fn foo() -> Option<Foo>'
|
||||
pub async fn foo() -> Option<Foo> {
|
||||
None
|
||||
}
|
||||
|
||||
// @has async_fn/fn.bar.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn bar(a: i32, b: i32) -> i32'
|
||||
// @has async_fn/fn.bar.html '//pre[@class="rust item-decl"]' 'pub async fn bar(a: i32, b: i32) -> i32'
|
||||
pub async fn bar(a: i32, b: i32) -> i32 {
|
||||
0
|
||||
}
|
||||
|
||||
// @has async_fn/fn.baz.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn baz<T>(a: T) -> T'
|
||||
// @has async_fn/fn.baz.html '//pre[@class="rust item-decl"]' 'pub async fn baz<T>(a: T) -> T'
|
||||
pub async fn baz<T>(a: T) -> T {
|
||||
a
|
||||
}
|
||||
|
||||
// @has async_fn/fn.qux.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async unsafe fn qux() -> char'
|
||||
// @has async_fn/fn.qux.html '//pre[@class="rust item-decl"]' 'pub async unsafe fn qux() -> char'
|
||||
pub async unsafe fn qux() -> char {
|
||||
'⚠'
|
||||
}
|
||||
|
||||
// @has async_fn/fn.mut_args.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn mut_args(a: usize)'
|
||||
// @has async_fn/fn.mut_args.html '//pre[@class="rust item-decl"]' 'pub async fn mut_args(a: usize)'
|
||||
pub async fn mut_args(mut a: usize) {}
|
||||
|
||||
// @has async_fn/fn.mut_ref.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn mut_ref(x: i32)'
|
||||
// @has async_fn/fn.mut_ref.html '//pre[@class="rust item-decl"]' 'pub async fn mut_ref(x: i32)'
|
||||
pub async fn mut_ref(ref mut x: i32) {}
|
||||
|
||||
trait Bar {}
|
||||
|
||||
impl Bar for () {}
|
||||
|
||||
// @has async_fn/fn.quux.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn quux() -> impl Bar'
|
||||
// @has async_fn/fn.quux.html '//pre[@class="rust item-decl"]' 'pub async fn quux() -> impl Bar'
|
||||
pub async fn quux() -> impl Bar {
|
||||
()
|
||||
}
|
||||
@ -50,27 +50,27 @@ pub trait Pattern<'a> {}
|
||||
|
||||
pub trait Trait<const N: usize> {}
|
||||
// @has async_fn/fn.const_generics.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn const_generics<const N: usize>(_: impl Trait<N>)'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub async fn const_generics<const N: usize>(_: impl Trait<N>)'
|
||||
pub async fn const_generics<const N: usize>(_: impl Trait<N>) {}
|
||||
|
||||
// test that elided lifetimes are properly elided and not displayed as `'_`
|
||||
// regression test for #63037
|
||||
// @has async_fn/fn.elided.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn elided(foo: &str) -> &str'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub async fn elided(foo: &str) -> &str'
|
||||
pub async fn elided(foo: &str) -> &str {}
|
||||
// This should really be shown as written, but for implementation reasons it's difficult.
|
||||
// See `impl Clean for TyKind::Ref`.
|
||||
// @has async_fn/fn.user_elided.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn user_elided(foo: &str) -> &str'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub async fn user_elided(foo: &str) -> &str'
|
||||
pub async fn user_elided(foo: &'_ str) -> &str {}
|
||||
// @has async_fn/fn.static_trait.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub async fn static_trait(foo: &str) -> Box<dyn Bar>'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub async fn static_trait(foo: &str) -> Box<dyn Bar>'
|
||||
pub async fn static_trait(foo: &str) -> Box<dyn Bar> {}
|
||||
// @has async_fn/fn.lifetime_for_trait.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "pub async fn lifetime_for_trait(foo: &str) -> Box<dyn Bar + '_>"
|
||||
// @has - '//pre[@class="rust item-decl"]' "pub async fn lifetime_for_trait(foo: &str) -> Box<dyn Bar + '_>"
|
||||
pub async fn lifetime_for_trait(foo: &str) -> Box<dyn Bar + '_> {}
|
||||
// @has async_fn/fn.elided_in_input_trait.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "pub async fn elided_in_input_trait(t: impl Pattern<'_>)"
|
||||
// @has - '//pre[@class="rust item-decl"]' "pub async fn elided_in_input_trait(t: impl Pattern<'_>)"
|
||||
pub async fn elided_in_input_trait(t: impl Pattern<'_>) {}
|
||||
|
||||
struct AsyncFdReadyGuard<'a, T> { x: &'a T }
|
||||
@ -88,8 +88,8 @@ impl Foo {
|
||||
|
||||
// test named lifetimes, just in case
|
||||
// @has async_fn/fn.named.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "pub async fn named<'a, 'b>(foo: &'a str) -> &'b str"
|
||||
// @has - '//pre[@class="rust item-decl"]' "pub async fn named<'a, 'b>(foo: &'a str) -> &'b str"
|
||||
pub async fn named<'a, 'b>(foo: &'a str) -> &'b str {}
|
||||
// @has async_fn/fn.named_trait.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "pub async fn named_trait<'a, 'b>(foo: impl Pattern<'a>) -> impl Pattern<'b>"
|
||||
// @has - '//pre[@class="rust item-decl"]' "pub async fn named_trait<'a, 'b>(foo: impl Pattern<'a>) -> impl Pattern<'b>"
|
||||
pub async fn named_trait<'a, 'b>(foo: impl Pattern<'a>) -> impl Pattern<'b> {}
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has 'foo/fn.f.html'
|
||||
// @has - //*[@'class="item-decl"]' '#[export_name = "f"] pub fn f()'
|
||||
// @has - //*[@'class="rust item-decl"]' '#[export_name = "f"] pub fn f()'
|
||||
#[export_name = "\
|
||||
f"]
|
||||
pub fn f() {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/fn.f.html '//div[@class="item-decl"]/pre[@class="rust"]' '#[no_mangle]'
|
||||
// @has foo/fn.f.html '//pre[@class="rust item-decl"]' '#[no_mangle]'
|
||||
#[no_mangle]
|
||||
pub extern "C" fn f() {}
|
||||
|
||||
// @has foo/fn.g.html '//div[@class="item-decl"]/pre[@class="rust"]' '#[export_name = "bar"]'
|
||||
// @has foo/fn.g.html '//pre[@class="rust item-decl"]' '#[export_name = "bar"]'
|
||||
#[export_name = "bar"]
|
||||
pub extern "C" fn g() {}
|
||||
|
||||
// @has foo/struct.Repr.html '//div[@class="item-decl"]' '#[repr(C, align(8))]'
|
||||
// @has foo/struct.Repr.html '//pre[@class="rust item-decl"]' '#[repr(C, align(8))]'
|
||||
#[repr(C, align(8))]
|
||||
pub struct Repr;
|
||||
|
@ -1,5 +1,5 @@
|
||||
// @has issue_85454/trait.FromResidual.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { fn from_residual(residual: R) -> Self; }'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { fn from_residual(residual: R) -> Self; }'
|
||||
pub trait FromResidual<R = <Self as Try>::Residual> {
|
||||
fn from_residual(residual: R) -> Self;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/fn.bar.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub const fn bar() -> '
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub const fn bar() -> '
|
||||
/// foo
|
||||
pub const fn bar() -> usize {
|
||||
2
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
use std::ops::Add;
|
||||
|
||||
// @has foo/struct.Simd.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub struct Simd<T, const WIDTH: usize>'
|
||||
// @has foo/struct.Simd.html '//pre[@class="rust item-decl"]' 'pub struct Simd<T, const WIDTH: usize>'
|
||||
pub struct Simd<T, const WIDTH: usize> {
|
||||
inner: T,
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/struct.Foo.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/struct.Foo.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub struct Foo<const M: usize = 10, const N: usize = M, T = i32>(_);'
|
||||
pub struct Foo<const M: usize = 10, const N: usize = M, T = i32>(T);
|
||||
|
@ -3,21 +3,21 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
extern crate extern_crate;
|
||||
// @has foo/fn.extern_fn.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/fn.extern_fn.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub fn extern_fn<const N: usize>() -> impl Iterator<Item = [u8; N]>'
|
||||
pub use extern_crate::extern_fn;
|
||||
// @has foo/struct.ExternTy.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/struct.ExternTy.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub struct ExternTy<const N: usize> {'
|
||||
pub use extern_crate::ExternTy;
|
||||
// @has foo/type.TyAlias.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/type.TyAlias.html '//pre[@class="rust item-decl"]' \
|
||||
// 'type TyAlias<const N: usize> = ExternTy<N>;'
|
||||
pub use extern_crate::TyAlias;
|
||||
// @has foo/trait.WTrait.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/trait.WTrait.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub trait WTrait<const N: usize, const M: usize>'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'fn hey<const P: usize>() -> usize'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'fn hey<const P: usize>() -> usize'
|
||||
pub use extern_crate::WTrait;
|
||||
|
||||
// @has foo/trait.Trait.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/trait.Trait.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub trait Trait<const N: usize>'
|
||||
// @has - '//*[@id="impl-Trait%3C1%3E-for-u8"]//h3[@class="code-header"]' 'impl Trait<1> for u8'
|
||||
// @has - '//*[@id="impl-Trait%3C2%3E-for-u8"]//h3[@class="code-header"]' 'impl Trait<2> for u8'
|
||||
@ -30,10 +30,10 @@ impl Trait<2> for u8 {}
|
||||
impl Trait<{1 + 2}> for u8 {}
|
||||
impl<const N: usize> Trait<N> for [u8; N] {}
|
||||
|
||||
// @has foo/struct.Foo.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/struct.Foo.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub struct Foo<const N: usize>where u8: Trait<N>'
|
||||
pub struct Foo<const N: usize> where u8: Trait<N>;
|
||||
// @has foo/struct.Bar.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub struct Bar<T, const N: usize>(_)'
|
||||
// @has foo/struct.Bar.html '//pre[@class="rust item-decl"]' 'pub struct Bar<T, const N: usize>(_)'
|
||||
pub struct Bar<T, const N: usize>([T; N]);
|
||||
|
||||
// @has foo/struct.Foo.html '//*[@id="impl-Foo%3CM%3E"]/h3[@class="code-header"]' 'impl<const M: usize> Foo<M>where u8: Trait<M>'
|
||||
@ -56,32 +56,32 @@ impl<const M: usize> Bar<u8, M> {
|
||||
}
|
||||
}
|
||||
|
||||
// @has foo/fn.test.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/fn.test.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub fn test<const N: usize>() -> impl Trait<N>where u8: Trait<N>'
|
||||
pub fn test<const N: usize>() -> impl Trait<N> where u8: Trait<N> {
|
||||
2u8
|
||||
}
|
||||
|
||||
// @has foo/fn.a_sink.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/fn.a_sink.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub async fn a_sink<const N: usize>(v: [u8; N]) -> impl Trait<N>'
|
||||
pub async fn a_sink<const N: usize>(v: [u8; N]) -> impl Trait<N> {
|
||||
v
|
||||
}
|
||||
|
||||
// @has foo/fn.b_sink.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/fn.b_sink.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub async fn b_sink<const N: usize>(_: impl Trait<N>)'
|
||||
pub async fn b_sink<const N: usize>(_: impl Trait<N>) {}
|
||||
|
||||
// @has foo/fn.concrete.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/fn.concrete.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub fn concrete() -> [u8; 22]'
|
||||
pub fn concrete() -> [u8; 3 + std::mem::size_of::<u64>() << 1] {
|
||||
Default::default()
|
||||
}
|
||||
|
||||
// @has foo/type.Faz.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/type.Faz.html '//pre[@class="rust item-decl"]' \
|
||||
// 'type Faz<const N: usize> = [u8; N];'
|
||||
pub type Faz<const N: usize> = [u8; N];
|
||||
// @has foo/type.Fiz.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/type.Fiz.html '//pre[@class="rust item-decl"]' \
|
||||
// 'type Fiz<const N: usize> = [[u8; N]; 48];'
|
||||
pub type Fiz<const N: usize> = [[u8; N]; 3 << 4];
|
||||
|
||||
@ -91,7 +91,7 @@ macro_rules! define_me {
|
||||
}
|
||||
}
|
||||
|
||||
// @has foo/struct.Foz.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/struct.Foz.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub struct Foz<const N: usize>(_);'
|
||||
define_me!(Foz<N>);
|
||||
|
||||
@ -103,13 +103,13 @@ impl<const N: usize> Q for [u8; N] {
|
||||
const ASSOC: usize = N;
|
||||
}
|
||||
|
||||
// @has foo/fn.q_user.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/fn.q_user.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub fn q_user() -> [u8; 13]'
|
||||
pub fn q_user() -> [u8; <[u8; 13] as Q>::ASSOC] {
|
||||
[0; <[u8; 13] as Q>::ASSOC]
|
||||
}
|
||||
|
||||
// @has foo/union.Union.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/union.Union.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub union Union<const N: usize>'
|
||||
pub union Union<const N: usize> {
|
||||
// @has - //pre "pub arr: [u8; N]"
|
||||
@ -118,7 +118,7 @@ pub union Union<const N: usize> {
|
||||
pub another_arr: [(); N],
|
||||
}
|
||||
|
||||
// @has foo/enum.Enum.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/enum.Enum.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub enum Enum<const N: usize>'
|
||||
pub enum Enum<const N: usize> {
|
||||
// @has - //pre "Variant([u8; N])"
|
||||
|
@ -8,7 +8,7 @@ pub enum Order {
|
||||
Unsorted,
|
||||
}
|
||||
|
||||
// @has foo/struct.VSet.html '//div[@class="item-decl"]/pre[@class="rust"]' 'pub struct VSet<T, const ORDER: Order>'
|
||||
// @has foo/struct.VSet.html '//pre[@class="rust item-decl"]' 'pub struct VSet<T, const ORDER: Order>'
|
||||
// @has foo/struct.VSet.html '//*[@id="impl-Send-for-VSet%3CT%2C%20ORDER%3E"]/h3[@class="code-header"]' 'impl<T, const ORDER: Order> Send for VSet<T, ORDER>'
|
||||
// @has foo/struct.VSet.html '//*[@id="impl-Sync-for-VSet%3CT%2C%20ORDER%3E"]/h3[@class="code-header"]' 'impl<T, const ORDER: Order> Sync for VSet<T, ORDER>'
|
||||
pub struct VSet<T, const ORDER: Order> {
|
||||
|
@ -2,6 +2,6 @@
|
||||
#![feature(generic_const_exprs)]
|
||||
#![allow(incomplete_features)]
|
||||
// make sure that `ConstEvaluatable` predicates dont cause rustdoc to ICE #77647
|
||||
// @has foo/struct.Ice.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/struct.Ice.html '//pre[@class="rust item-decl"]' \
|
||||
// 'pub struct Ice<const N: usize>;'
|
||||
pub struct Ice<const N: usize> where [(); N + 1]:;
|
||||
|
@ -1,4 +1,4 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/type.CellIndex.html '//div[@class="item-decl"]/pre[@class="rust"]' 'type CellIndex<const D: usize> = [i64; D];'
|
||||
// @has foo/type.CellIndex.html '//pre[@class="rust item-decl"]' 'type CellIndex<const D: usize> = [i64; D];'
|
||||
pub type CellIndex<const D: usize> = [i64; D];
|
||||
|
@ -6,20 +6,20 @@
|
||||
|
||||
extern "rust-intrinsic" {
|
||||
// @has 'foo/fn.transmute.html'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub const unsafe extern "rust-intrinsic" fn transmute<T, U>(_: T) -> U'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub const unsafe extern "rust-intrinsic" fn transmute<T, U>(_: T) -> U'
|
||||
#[stable(since="1.0.0", feature="rust1")]
|
||||
#[rustc_const_stable(feature = "const_transmute", since = "1.56.0")]
|
||||
pub fn transmute<T, U>(_: T) -> U;
|
||||
|
||||
// @has 'foo/fn.unreachable.html'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub unsafe extern "rust-intrinsic" fn unreachable() -> !'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub unsafe extern "rust-intrinsic" fn unreachable() -> !'
|
||||
#[stable(since="1.0.0", feature="rust1")]
|
||||
pub fn unreachable() -> !;
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
// @has 'foo/fn.needs_drop.html'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub unsafe extern "C" fn needs_drop() -> !'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub unsafe extern "C" fn needs_drop() -> !'
|
||||
#[stable(since="1.0.0", feature="rust1")]
|
||||
pub fn needs_drop() -> !;
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has 'foo/constant.HOUR_IN_SECONDS.html'
|
||||
// @has - '//*[@class="item-decl"]//code' 'pub const HOUR_IN_SECONDS: u64 = _; // 3_600u64'
|
||||
// @has - '//*[@class="rust item-decl"]//code' 'pub const HOUR_IN_SECONDS: u64 = _; // 3_600u64'
|
||||
pub const HOUR_IN_SECONDS: u64 = 60 * 60;
|
||||
|
||||
// @has 'foo/constant.NEGATIVE.html'
|
||||
// @has - '//*[@class="item-decl"]//code' 'pub const NEGATIVE: i64 = _; // -3_600i64'
|
||||
// @has - '//*[@class="rust item-decl"]//code' 'pub const NEGATIVE: i64 = _; // -3_600i64'
|
||||
pub const NEGATIVE: i64 = -60 * 60;
|
||||
|
@ -7,7 +7,7 @@ pub struct Error;
|
||||
// @has 'foo/trait.Write.html'
|
||||
|
||||
pub trait Write {
|
||||
// @snapshot 'declaration' - '//*[@class="item-decl"]//code'
|
||||
// @snapshot 'declaration' - '//*[@class="rust item-decl"]//code'
|
||||
fn poll_write(
|
||||
self: Option<String>,
|
||||
cx: &mut Option<String>,
|
||||
|
@ -1,5 +1,5 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/fn.f.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn f(callback: fn(len: usize, foo: u32))'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub fn f(callback: fn(len: usize, foo: u32))'
|
||||
pub fn f(callback: fn(len: usize, foo: u32)) {}
|
||||
|
@ -63,7 +63,7 @@ impl<const S: Struct, St: Stage + ?Sized> Helper<S> for St {
|
||||
// this test as long as one can ensure that private fields are not leaked!
|
||||
//
|
||||
// @has hide_complex_unevaluated_const_arguments/trait.Sub.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// '//pre[@class="rust item-decl"]' \
|
||||
// 'pub trait Sub: Sup<{ _ }, { _ }> { }'
|
||||
pub trait Sub: Sup<{ 90 * 20 * 4 }, { Struct { private: () } }> {}
|
||||
|
||||
|
@ -4,6 +4,6 @@
|
||||
extern crate inline_default_methods;
|
||||
|
||||
// @has inline_default_methods/trait.Foo.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'fn bar(&self);'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'fn foo(&mut self) { ... }'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'fn bar(&self);'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'fn foo(&mut self) { ... }'
|
||||
pub use inline_default_methods::Foo;
|
||||
|
@ -4,28 +4,28 @@
|
||||
// edition:2021
|
||||
|
||||
// @has user/type.Ty0.html
|
||||
// @has - '//*[@class="item-decl"]//code' "dyn for<'any> FnOnce(&'any str) -> bool + 'static"
|
||||
// @has - '//*[@class="rust item-decl"]//code' "dyn for<'any> FnOnce(&'any str) -> bool + 'static"
|
||||
// FIXME(fmease): Hide default lifetime bound `'static`
|
||||
pub use dyn_trait::Ty0;
|
||||
|
||||
// @has user/type.Ty1.html
|
||||
// @has - '//*[@class="item-decl"]//code' "dyn Display + 'obj"
|
||||
// @has - '//*[@class="rust item-decl"]//code' "dyn Display + 'obj"
|
||||
pub use dyn_trait::Ty1;
|
||||
|
||||
// @has user/type.Ty2.html
|
||||
// @has - '//*[@class="item-decl"]//code' "dyn for<'a, 'r> Container<'r, Item<'a, 'static> = ()>"
|
||||
// @has - '//*[@class="rust item-decl"]//code' "dyn for<'a, 'r> Container<'r, Item<'a, 'static> = ()>"
|
||||
pub use dyn_trait::Ty2;
|
||||
|
||||
// @has user/type.Ty3.html
|
||||
// @has - '//*[@class="item-decl"]//code' "&'s (dyn ToString + 's)"
|
||||
// @has - '//*[@class="rust item-decl"]//code' "&'s (dyn ToString + 's)"
|
||||
// FIXME(fmease): Hide default lifetime bound, render "&'s dyn ToString"
|
||||
pub use dyn_trait::Ty3;
|
||||
|
||||
// @has user/fn.func0.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "func0(_: &dyn Fn())"
|
||||
// @has - '//pre[@class="rust item-decl"]' "func0(_: &dyn Fn())"
|
||||
// FIXME(fmease): Show placeholder-lifetime bound, render "func0(_: &(dyn Fn() + '_))"
|
||||
pub use dyn_trait::func0;
|
||||
|
||||
// @has user/fn.func1.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "func1<'func>(_: &(dyn Fn() + 'func))"
|
||||
// @has - '//pre[@class="rust item-decl"]' "func1<'func>(_: &(dyn Fn() + 'func))"
|
||||
pub use dyn_trait::func1;
|
||||
|
@ -4,37 +4,37 @@
|
||||
extern crate impl_trait_aux;
|
||||
|
||||
// @has impl_trait/fn.func.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "pub fn func<'a>(_x: impl Clone + Into<Vec<u8, Global>> + 'a)"
|
||||
// @!has - '//div[@class="item-decl"]/pre[@class="rust"]' 'where'
|
||||
// @has - '//pre[@class="rust item-decl"]' "pub fn func<'a>(_x: impl Clone + Into<Vec<u8, Global>> + 'a)"
|
||||
// @!has - '//pre[@class="rust item-decl"]' 'where'
|
||||
pub use impl_trait_aux::func;
|
||||
|
||||
// @has impl_trait/fn.func2.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "func2<T>("
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "_x: impl Deref<Target = Option<T>> + Iterator<Item = T>,"
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "_y: impl Iterator<Item = u8>)"
|
||||
// @!has - '//div[@class="item-decl"]/pre[@class="rust"]' 'where'
|
||||
// @has - '//pre[@class="rust item-decl"]' "func2<T>("
|
||||
// @has - '//pre[@class="rust item-decl"]' "_x: impl Deref<Target = Option<T>> + Iterator<Item = T>,"
|
||||
// @has - '//pre[@class="rust item-decl"]' "_y: impl Iterator<Item = u8>)"
|
||||
// @!has - '//pre[@class="rust item-decl"]' 'where'
|
||||
pub use impl_trait_aux::func2;
|
||||
|
||||
// @has impl_trait/fn.func3.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "func3("
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "_x: impl Iterator<Item = impl Iterator<Item = u8>> + Clone)"
|
||||
// @!has - '//div[@class="item-decl"]/pre[@class="rust"]' 'where'
|
||||
// @has - '//pre[@class="rust item-decl"]' "func3("
|
||||
// @has - '//pre[@class="rust item-decl"]' "_x: impl Iterator<Item = impl Iterator<Item = u8>> + Clone)"
|
||||
// @!has - '//pre[@class="rust item-decl"]' 'where'
|
||||
pub use impl_trait_aux::func3;
|
||||
|
||||
// @has impl_trait/fn.func4.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "func4<T>("
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "T: Iterator<Item = impl Clone>,"
|
||||
// @has - '//pre[@class="rust item-decl"]' "func4<T>("
|
||||
// @has - '//pre[@class="rust item-decl"]' "T: Iterator<Item = impl Clone>,"
|
||||
pub use impl_trait_aux::func4;
|
||||
|
||||
// @has impl_trait/fn.func5.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "func5("
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "_f: impl for<'any> Fn(&'any str, &'any str) -> bool + for<'r> Other<T<'r> = ()>,"
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "_a: impl for<'alpha, 'beta> Auxiliary<'alpha, Item<'beta> = fn(_: &'beta ())>"
|
||||
// @!has - '//div[@class="item-decl"]/pre[@class="rust"]' 'where'
|
||||
// @has - '//pre[@class="rust item-decl"]' "func5("
|
||||
// @has - '//pre[@class="rust item-decl"]' "_f: impl for<'any> Fn(&'any str, &'any str) -> bool + for<'r> Other<T<'r> = ()>,"
|
||||
// @has - '//pre[@class="rust item-decl"]' "_a: impl for<'alpha, 'beta> Auxiliary<'alpha, Item<'beta> = fn(_: &'beta ())>"
|
||||
// @!has - '//pre[@class="rust item-decl"]' 'where'
|
||||
pub use impl_trait_aux::func5;
|
||||
|
||||
// @has impl_trait/fn.async_fn.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "pub async fn async_fn()"
|
||||
// @has - '//pre[@class="rust item-decl"]' "pub async fn async_fn()"
|
||||
pub use impl_trait_aux::async_fn;
|
||||
|
||||
// @has impl_trait/struct.Foo.html
|
||||
|
@ -5,7 +5,7 @@
|
||||
// edition: 2021
|
||||
|
||||
// @has usr/trait.U.html
|
||||
// @has - '//*[@class="item-decl"]' "pub trait U {"
|
||||
// @has - '//*[@class="rust item-decl"]' "pub trait U {"
|
||||
// @has - '//*[@id="method.modified"]' \
|
||||
// "fn modified(self) -> Self\
|
||||
// where \
|
||||
@ -14,5 +14,5 @@
|
||||
pub use issue_24183::U;
|
||||
|
||||
// @has usr/trait.S.html
|
||||
// @has - '//*[@class="item-decl"]' 'pub trait S: Sized {'
|
||||
// @has - '//*[@class="rust item-decl"]' 'pub trait S: Sized {'
|
||||
pub use issue_24183::S;
|
||||
|
@ -13,7 +13,7 @@ pub trait Trait {
|
||||
}
|
||||
|
||||
// @has issue_20646/fn.fun.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' 'where T: Trait<Output = i32>'
|
||||
// '//pre[@class="rust item-decl"]' 'where T: Trait<Output = i32>'
|
||||
pub fn fun<T>(_: T) where T: Trait<Output=i32> {}
|
||||
|
||||
pub mod reexport {
|
||||
@ -21,6 +21,6 @@ pub mod reexport {
|
||||
// '//*[@id="associatedtype.Output"]' \
|
||||
// 'type Output'
|
||||
// @has issue_20646/reexport/fn.fun.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' 'where T: Trait<Output = i32>'
|
||||
// '//pre[@class="rust item-decl"]' 'where T: Trait<Output = i32>'
|
||||
pub use issue_20646::{Trait, fun};
|
||||
}
|
||||
|
@ -5,18 +5,18 @@ extern crate issue_20727;
|
||||
|
||||
// @has issue_20727_2/trait.Add.html
|
||||
pub trait Add<RHS = Self> {
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'trait Add<RHS = Self> {'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'type Output;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'trait Add<RHS = Self> {'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'type Output;'
|
||||
type Output;
|
||||
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'fn add(self, rhs: RHS) -> Self::Output;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'fn add(self, rhs: RHS) -> Self::Output;'
|
||||
fn add(self, rhs: RHS) -> Self::Output;
|
||||
}
|
||||
|
||||
// @has issue_20727_2/reexport/trait.Add.html
|
||||
pub mod reexport {
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'trait Add<RHS = Self> {'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'type Output;'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'fn add(self, rhs: RHS) -> Self::Output;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'trait Add<RHS = Self> {'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'type Output;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'fn add(self, rhs: RHS) -> Self::Output;'
|
||||
pub use issue_20727::Add;
|
||||
}
|
||||
|
@ -7,18 +7,18 @@ pub trait Bar {}
|
||||
|
||||
// @has issue_20727_3/trait.Deref2.html
|
||||
pub trait Deref2 {
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'trait Deref2 {'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'type Target: Bar;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'trait Deref2 {'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'type Target: Bar;'
|
||||
type Target: Bar;
|
||||
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'fn deref(&self) -> Self::Target;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'fn deref(&self) -> Self::Target;'
|
||||
fn deref(&self) -> Self::Target;
|
||||
}
|
||||
|
||||
// @has issue_20727_3/reexport/trait.Deref2.html
|
||||
pub mod reexport {
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'trait Deref2 {'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'type Target: Bar;'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'fn deref(&self) -> Self::Target;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'trait Deref2 {'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'type Target: Bar;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'fn deref(&self) -> Self::Target;'
|
||||
pub use issue_20727::Deref2;
|
||||
}
|
||||
|
@ -5,36 +5,36 @@ extern crate issue_20727;
|
||||
|
||||
// @has issue_20727_4/trait.Index.html
|
||||
pub trait Index<Idx: ?Sized> {
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'trait Index<Idx: ?Sized> {'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'type Output: ?Sized'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'trait Index<Idx: ?Sized> {'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'type Output: ?Sized'
|
||||
type Output: ?Sized;
|
||||
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has - '//pre[@class="rust item-decl"]' \
|
||||
// 'fn index(&self, index: Idx) -> &Self::Output'
|
||||
fn index(&self, index: Idx) -> &Self::Output;
|
||||
}
|
||||
|
||||
// @has issue_20727_4/trait.IndexMut.html
|
||||
pub trait IndexMut<Idx: ?Sized>: Index<Idx> {
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has - '//pre[@class="rust item-decl"]' \
|
||||
// 'trait IndexMut<Idx: ?Sized>: Index<Idx> {'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has - '//pre[@class="rust item-decl"]' \
|
||||
// 'fn index_mut(&mut self, index: Idx) -> &mut Self::Output;'
|
||||
fn index_mut(&mut self, index: Idx) -> &mut Self::Output;
|
||||
}
|
||||
|
||||
pub mod reexport {
|
||||
// @has issue_20727_4/reexport/trait.Index.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'trait Index<Idx>where Idx: ?Sized,{'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'type Output: ?Sized'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has - '//pre[@class="rust item-decl"]' 'trait Index<Idx>where Idx: ?Sized,{'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'type Output: ?Sized'
|
||||
// @has - '//pre[@class="rust item-decl"]' \
|
||||
// 'fn index(&self, index: Idx) -> &Self::Output'
|
||||
pub use issue_20727::Index;
|
||||
|
||||
// @has issue_20727_4/reexport/trait.IndexMut.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has - '//pre[@class="rust item-decl"]' \
|
||||
// 'trait IndexMut<Idx>: Index<Idx>where Idx: ?Sized,{'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has - '//pre[@class="rust item-decl"]' \
|
||||
// 'fn index_mut(&mut self, index: Idx) -> &mut Self::Output;'
|
||||
pub use issue_20727::IndexMut;
|
||||
}
|
||||
|
@ -5,20 +5,20 @@ extern crate issue_20727;
|
||||
|
||||
// @has issue_20727/trait.Deref.html
|
||||
pub trait Deref {
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'trait Deref {'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'type Target: ?Sized;'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'trait Deref {'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'type Target: ?Sized;'
|
||||
type Target: ?Sized;
|
||||
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has - '//pre[@class="rust item-decl"]' \
|
||||
// "fn deref<'a>(&'a self) -> &'a Self::Target;"
|
||||
fn deref<'a>(&'a self) -> &'a Self::Target;
|
||||
}
|
||||
|
||||
// @has issue_20727/reexport/trait.Deref.html
|
||||
pub mod reexport {
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'trait Deref {'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'type Target: ?Sized;'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has - '//pre[@class="rust item-decl"]' 'trait Deref {'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'type Target: ?Sized;'
|
||||
// @has - '//pre[@class="rust item-decl"]' \
|
||||
// "fn deref<'a>(&'a self) -> &'a Self::Target;"
|
||||
pub use issue_20727::Deref;
|
||||
}
|
||||
|
@ -1,19 +1,19 @@
|
||||
extern "C" {
|
||||
// @has issue_22038/fn.foo1.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' 'pub unsafe extern "C" fn foo1()'
|
||||
// '//pre[@class="rust item-decl"]' 'pub unsafe extern "C" fn foo1()'
|
||||
pub fn foo1();
|
||||
}
|
||||
|
||||
extern "system" {
|
||||
// @has issue_22038/fn.foo2.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' 'pub unsafe extern "system" fn foo2()'
|
||||
// '//pre[@class="rust item-decl"]' 'pub unsafe extern "system" fn foo2()'
|
||||
pub fn foo2();
|
||||
}
|
||||
|
||||
// @has issue_22038/fn.bar.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' 'pub extern "C" fn bar()'
|
||||
// '//pre[@class="rust item-decl"]' 'pub extern "C" fn bar()'
|
||||
pub extern "C" fn bar() {}
|
||||
|
||||
// @has issue_22038/fn.baz.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' 'pub extern "system" fn baz()'
|
||||
// '//pre[@class="rust item-decl"]' 'pub extern "system" fn baz()'
|
||||
pub extern "system" fn baz() {}
|
||||
|
@ -6,17 +6,17 @@ macro_rules! make {
|
||||
pub struct S;
|
||||
|
||||
// @has issue_33302/constant.CST.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' 'pub const CST: i32'
|
||||
// '//pre[@class="rust item-decl"]' 'pub const CST: i32'
|
||||
pub const CST: i32 = ($n * $n);
|
||||
// @has issue_33302/static.ST.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' 'pub static ST: i32'
|
||||
// '//pre[@class="rust item-decl"]' 'pub static ST: i32'
|
||||
pub static ST: i32 = ($n * $n);
|
||||
|
||||
pub trait T<X> {
|
||||
fn ignore(_: &X) {}
|
||||
const C: X;
|
||||
// @has issue_33302/trait.T.html \
|
||||
// '//div[@class="item-decl"]/pre[@class="rust"]' 'const D: i32'
|
||||
// '//pre[@class="rust item-decl"]' 'const D: i32'
|
||||
// @has - '//*[@id="associatedconstant.D"]' 'const D: i32'
|
||||
const D: i32 = ($n * $n);
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
extern crate issue_85454;
|
||||
|
||||
// @has foo/trait.FromResidual.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { fn from_residual(residual: R) -> Self; }'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { fn from_residual(residual: R) -> Self; }'
|
||||
pub trait FromResidual<R = <Self as Try>::Residual> {
|
||||
fn from_residual(residual: R) -> Self;
|
||||
}
|
||||
@ -24,6 +24,6 @@ pub enum ControlFlow<B, C = ()> {
|
||||
|
||||
pub mod reexport {
|
||||
// @has foo/reexport/trait.FromResidual.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { fn from_residual(residual: R) -> Self; }'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub trait FromResidual<R = <Self as Try>::Residual> { fn from_residual(residual: R) -> Self; }'
|
||||
pub use issue_85454::*;
|
||||
}
|
||||
|
@ -8,8 +8,8 @@
|
||||
|
||||
extern crate issue_98697_reexport_with_anonymous_lifetime;
|
||||
|
||||
// @has issue_98697/fn.repro.html '//div[@class="item-decl"]/pre[@class="rust"]/code' 'fn repro<F>()where F: Fn(&str)'
|
||||
// @!has issue_98697/fn.repro.html '//div[@class="item-decl"]/pre[@class="rust"]/code' 'for<'
|
||||
// @has issue_98697/fn.repro.html '//pre[@class="rust item-decl"]/code' 'fn repro<F>()where F: Fn(&str)'
|
||||
// @!has issue_98697/fn.repro.html '//pre[@class="rust item-decl"]/code' 'for<'
|
||||
pub use issue_98697_reexport_with_anonymous_lifetime::repro;
|
||||
|
||||
// @has issue_98697/struct.Extra.html '//div[@id="trait-implementations-list"]//h3[@class="code-header"]' 'impl MyTrait<&Extra> for Extra'
|
||||
|
@ -2,14 +2,14 @@
|
||||
#![feature(rustc_attrs)]
|
||||
|
||||
// @has 'foo/fn.foo.html'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'fn foo(x: usize, const Y: usize, z: usize) -> [usize; 3]'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'fn foo(x: usize, const Y: usize, z: usize) -> [usize; 3]'
|
||||
#[rustc_legacy_const_generics(1)]
|
||||
pub fn foo<const Y: usize>(x: usize, z: usize) -> [usize; 3] {
|
||||
[x, Y, z]
|
||||
}
|
||||
|
||||
// @has 'foo/fn.bar.html'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'fn bar(x: usize, const Y: usize, const Z: usize) -> [usize; 3]'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'fn bar(x: usize, const Y: usize, const Z: usize) -> [usize; 3]'
|
||||
#[rustc_legacy_const_generics(1, 2)]
|
||||
pub fn bar<const Y: usize, const Z: usize>(x: usize) -> [usize; 3] {
|
||||
[x, Y, z]
|
||||
|
@ -1,5 +1,5 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has 'foo/type.Resolutions.html'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "pub type Resolutions<'tcx> = &'tcx u8;"
|
||||
// @has - '//pre[@class="rust item-decl"]' "pub type Resolutions<'tcx> = &'tcx u8;"
|
||||
pub type Resolutions<'tcx> = &'tcx u8;
|
||||
|
@ -11,8 +11,8 @@ macro_rules! gen {
|
||||
}
|
||||
|
||||
// @has 'foo/struct.Providers.html'
|
||||
// @has - '//*[@class="item-decl"]//code' "pub a: for<'tcx> fn(_: TyCtxt<'tcx>, _: u8) -> i8,"
|
||||
// @has - '//*[@class="item-decl"]//code' "pub b: for<'tcx> fn(_: TyCtxt<'tcx>, _: u16) -> i16,"
|
||||
// @has - '//*[@class="rust item-decl"]//code' "pub a: for<'tcx> fn(_: TyCtxt<'tcx>, _: u8) -> i8,"
|
||||
// @has - '//*[@class="rust item-decl"]//code' "pub b: for<'tcx> fn(_: TyCtxt<'tcx>, _: u16) -> i16,"
|
||||
// @has - '//*[@id="structfield.a"]/code' "a: for<'tcx> fn(_: TyCtxt<'tcx>, _: u8) -> i8"
|
||||
// @has - '//*[@id="structfield.b"]/code' "b: for<'tcx> fn(_: TyCtxt<'tcx>, _: u16) -> i16"
|
||||
gen! {
|
||||
|
@ -13,6 +13,6 @@ impl Foo {
|
||||
pub fn bar(mut bar: ()) {}
|
||||
}
|
||||
|
||||
// @count foo/fn.baz.html '//div[@class="item-decl"]/pre[@class="rust"]' 1
|
||||
// @!has - '//div[@class="item-decl"]/pre[@class="rust"]' 'mut'
|
||||
// @count foo/fn.baz.html '//pre[@class="rust item-decl"]' 1
|
||||
// @!has - '//pre[@class="rust item-decl"]' 'mut'
|
||||
pub fn baz(mut foo: Foo) {}
|
||||
|
@ -19,12 +19,12 @@ impl Trait for isize {
|
||||
type X = <() as Trait>::X;
|
||||
}
|
||||
|
||||
// @has 'normalize_assoc_item/fn.f.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn f() -> isize'
|
||||
// @has 'normalize_assoc_item/fn.f.html' '//pre[@class="rust item-decl"]' 'pub fn f() -> isize'
|
||||
pub fn f() -> <usize as Trait>::X {
|
||||
0
|
||||
}
|
||||
|
||||
// @has 'normalize_assoc_item/fn.f2.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn f2() -> fn() -> i32'
|
||||
// @has 'normalize_assoc_item/fn.f2.html' '//pre[@class="rust item-decl"]' 'pub fn f2() -> fn() -> i32'
|
||||
pub fn f2() -> <isize as Trait>::X {
|
||||
todo!()
|
||||
}
|
||||
@ -49,10 +49,10 @@ impl<Inner: Trait> Trait for Generic<Inner> {
|
||||
// These can't be normalized because they depend on a generic parameter.
|
||||
// However the user can choose whether the text should be displayed as `Inner::X` or `<Inner as Trait>::X`.
|
||||
|
||||
// @has 'normalize_assoc_item/struct.Unknown.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub struct Unknown<Inner: Trait>(pub <Inner as Trait>::X);'
|
||||
// @has 'normalize_assoc_item/struct.Unknown.html' '//pre[@class="rust item-decl"]' 'pub struct Unknown<Inner: Trait>(pub <Inner as Trait>::X);'
|
||||
pub struct Unknown<Inner: Trait>(pub <Inner as Trait>::X);
|
||||
|
||||
// @has 'normalize_assoc_item/struct.Unknown2.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub struct Unknown2<Inner: Trait>(pub Inner::X);'
|
||||
// @has 'normalize_assoc_item/struct.Unknown2.html' '//pre[@class="rust item-decl"]' 'pub struct Unknown2<Inner: Trait>(pub Inner::X);'
|
||||
pub struct Unknown2<Inner: Trait>(pub Inner::X);
|
||||
|
||||
trait Lifetimes<'a> {
|
||||
@ -63,20 +63,20 @@ impl<'a> Lifetimes<'a> for usize {
|
||||
type Y = &'a isize;
|
||||
}
|
||||
|
||||
// @has 'normalize_assoc_item/fn.g.html' '//div[@class="item-decl"]/pre[@class="rust"]' "pub fn g() -> &isize"
|
||||
// @has 'normalize_assoc_item/fn.g.html' '//pre[@class="rust item-decl"]' "pub fn g() -> &isize"
|
||||
pub fn g() -> <usize as Lifetimes<'static>>::Y {
|
||||
&0
|
||||
}
|
||||
|
||||
// @has 'normalize_assoc_item/constant.A.html' '//div[@class="item-decl"]/pre[@class="rust"]' "pub const A: &isize"
|
||||
// @has 'normalize_assoc_item/constant.A.html' '//pre[@class="rust item-decl"]' "pub const A: &isize"
|
||||
pub const A: <usize as Lifetimes<'static>>::Y = &0;
|
||||
|
||||
// test cross-crate re-exports
|
||||
extern crate inner;
|
||||
// @has 'normalize_assoc_item/fn.foo.html' '//div[@class="item-decl"]/pre[@class="rust"]' "pub fn foo() -> i32"
|
||||
// @has 'normalize_assoc_item/fn.foo.html' '//pre[@class="rust item-decl"]' "pub fn foo() -> i32"
|
||||
pub use inner::foo;
|
||||
|
||||
// @has 'normalize_assoc_item/fn.h.html' '//div[@class="item-decl"]/pre[@class="rust"]' "pub fn h<T>() -> IntoIter<T, Global>"
|
||||
// @has 'normalize_assoc_item/fn.h.html' '//pre[@class="rust item-decl"]' "pub fn h<T>() -> IntoIter<T, Global>"
|
||||
pub fn h<T>() -> <Vec<T> as IntoIterator>::IntoIter {
|
||||
vec![].into_iter()
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/fn.bar.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn bar() -> '
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub fn bar() -> '
|
||||
/// foo
|
||||
pub fn bar() -> usize {
|
||||
2
|
||||
|
@ -1,5 +1,5 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/fn.f.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn f(_: u8)'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub fn f(_: u8)'
|
||||
pub fn f(0u8..=255: u8) {}
|
||||
|
@ -8,5 +8,5 @@
|
||||
extern crate all_item_types;
|
||||
|
||||
// @has 'foo/fn.foo_ffn.html'
|
||||
// @has - '//*[@class="item-decl"]//code' 'pub unsafe extern "C" fn foo_ffn()'
|
||||
// @has - '//*[@class="rust item-decl"]//code' 'pub unsafe extern "C" fn foo_ffn()'
|
||||
pub use all_item_types::foo_ffn;
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
extern crate reexports;
|
||||
|
||||
// @has 'foo/macro.addr_of.html' '//*[@class="item-decl"]' 'pub macro addr_of($place:expr) {'
|
||||
// @has 'foo/macro.addr_of.html' '//*[@class="rust item-decl"]' 'pub macro addr_of($place:expr) {'
|
||||
pub use reexports::addr_of;
|
||||
// @!has 'foo/macro.addr_of_crate.html'
|
||||
pub(crate) use reexports::addr_of_crate;
|
||||
@ -14,7 +14,7 @@ pub(self) use reexports::addr_of_self;
|
||||
// @!has 'foo/macro.addr_of_local.html'
|
||||
use reexports::addr_of_local;
|
||||
|
||||
// @has 'foo/struct.Foo.html' '//*[@class="item-decl"]' 'pub struct Foo;'
|
||||
// @has 'foo/struct.Foo.html' '//*[@class="rust item-decl"]' 'pub struct Foo;'
|
||||
pub use reexports::Foo;
|
||||
// @!has 'foo/struct.FooCrate.html'
|
||||
pub(crate) use reexports::FooCrate;
|
||||
@ -23,7 +23,7 @@ pub(self) use reexports::FooSelf;
|
||||
// @!has 'foo/struct.FooLocal.html'
|
||||
use reexports::FooLocal;
|
||||
|
||||
// @has 'foo/enum.Bar.html' '//*[@class="item-decl"]' 'pub enum Bar {'
|
||||
// @has 'foo/enum.Bar.html' '//*[@class="rust item-decl"]' 'pub enum Bar {'
|
||||
pub use reexports::Bar;
|
||||
// @!has 'foo/enum.BarCrate.html'
|
||||
pub(crate) use reexports::BarCrate;
|
||||
@ -32,7 +32,7 @@ pub(self) use reexports::BarSelf;
|
||||
// @!has 'foo/enum.BarLocal.html'
|
||||
use reexports::BarLocal;
|
||||
|
||||
// @has 'foo/fn.foo.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn foo()'
|
||||
// @has 'foo/fn.foo.html' '//pre[@class="rust item-decl"]' 'pub fn foo()'
|
||||
pub use reexports::foo;
|
||||
// @!has 'foo/fn.foo_crate.html'
|
||||
pub(crate) use reexports::foo_crate;
|
||||
@ -41,7 +41,7 @@ pub(self) use reexports::foo_self;
|
||||
// @!has 'foo/fn.foo_local.html'
|
||||
use reexports::foo_local;
|
||||
|
||||
// @has 'foo/type.Type.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub type Type ='
|
||||
// @has 'foo/type.Type.html' '//pre[@class="rust item-decl"]' 'pub type Type ='
|
||||
pub use reexports::Type;
|
||||
// @!has 'foo/type.TypeCrate.html'
|
||||
pub(crate) use reexports::TypeCrate;
|
||||
@ -50,7 +50,7 @@ pub(self) use reexports::TypeSelf;
|
||||
// @!has 'foo/type.TypeLocal.html'
|
||||
use reexports::TypeLocal;
|
||||
|
||||
// @has 'foo/union.Union.html' '//*[@class="item-decl"]' 'pub union Union {'
|
||||
// @has 'foo/union.Union.html' '//*[@class="rust item-decl"]' 'pub union Union {'
|
||||
pub use reexports::Union;
|
||||
// @!has 'foo/union.UnionCrate.html'
|
||||
pub(crate) use reexports::UnionCrate;
|
||||
@ -61,66 +61,66 @@ use reexports::UnionLocal;
|
||||
|
||||
pub mod outer {
|
||||
pub mod inner {
|
||||
// @has 'foo/outer/inner/macro.addr_of.html' '//*[@class="item-decl"]' 'pub macro addr_of($place:expr) {'
|
||||
// @has 'foo/outer/inner/macro.addr_of.html' '//*[@class="rust item-decl"]' 'pub macro addr_of($place:expr) {'
|
||||
pub use reexports::addr_of;
|
||||
// @has 'foo/outer/inner/macro.addr_of_crate.html' '//*[@class="item-decl"]' 'pub(crate) macro addr_of_crate($place:expr) {'
|
||||
// @has 'foo/outer/inner/macro.addr_of_crate.html' '//*[@class="rust item-decl"]' 'pub(crate) macro addr_of_crate($place:expr) {'
|
||||
pub(crate) use reexports::addr_of_crate;
|
||||
// @has 'foo/outer/inner/macro.addr_of_super.html' '//*[@class="item-decl"]' 'pub(in outer) macro addr_of_super($place:expr) {'
|
||||
// @has 'foo/outer/inner/macro.addr_of_super.html' '//*[@class="rust item-decl"]' 'pub(in outer) macro addr_of_super($place:expr) {'
|
||||
pub(super) use reexports::addr_of_super;
|
||||
// @!has 'foo/outer/inner/macro.addr_of_self.html'
|
||||
pub(self) use reexports::addr_of_self;
|
||||
// @!has 'foo/outer/inner/macro.addr_of_local.html'
|
||||
use reexports::addr_of_local;
|
||||
|
||||
// @has 'foo/outer/inner/struct.Foo.html' '//*[@class="item-decl"]' 'pub struct Foo;'
|
||||
// @has 'foo/outer/inner/struct.Foo.html' '//*[@class="rust item-decl"]' 'pub struct Foo;'
|
||||
pub use reexports::Foo;
|
||||
// @has 'foo/outer/inner/struct.FooCrate.html' '//*[@class="item-decl"]' 'pub(crate) struct FooCrate;'
|
||||
// @has 'foo/outer/inner/struct.FooCrate.html' '//*[@class="rust item-decl"]' 'pub(crate) struct FooCrate;'
|
||||
pub(crate) use reexports::FooCrate;
|
||||
// @has 'foo/outer/inner/struct.FooSuper.html' '//*[@class="item-decl"]' 'pub(in outer) struct FooSuper;'
|
||||
// @has 'foo/outer/inner/struct.FooSuper.html' '//*[@class="rust item-decl"]' 'pub(in outer) struct FooSuper;'
|
||||
pub(super) use reexports::FooSuper;
|
||||
// @!has 'foo/outer/inner/struct.FooSelf.html'
|
||||
pub(self) use reexports::FooSelf;
|
||||
// @!has 'foo/outer/inner/struct.FooLocal.html'
|
||||
use reexports::FooLocal;
|
||||
|
||||
// @has 'foo/outer/inner/enum.Bar.html' '//*[@class="item-decl"]' 'pub enum Bar {'
|
||||
// @has 'foo/outer/inner/enum.Bar.html' '//*[@class="rust item-decl"]' 'pub enum Bar {'
|
||||
pub use reexports::Bar;
|
||||
// @has 'foo/outer/inner/enum.BarCrate.html' '//*[@class="item-decl"]' 'pub(crate) enum BarCrate {'
|
||||
// @has 'foo/outer/inner/enum.BarCrate.html' '//*[@class="rust item-decl"]' 'pub(crate) enum BarCrate {'
|
||||
pub(crate) use reexports::BarCrate;
|
||||
// @has 'foo/outer/inner/enum.BarSuper.html' '//*[@class="item-decl"]' 'pub(in outer) enum BarSuper {'
|
||||
// @has 'foo/outer/inner/enum.BarSuper.html' '//*[@class="rust item-decl"]' 'pub(in outer) enum BarSuper {'
|
||||
pub(super) use reexports::BarSuper;
|
||||
// @!has 'foo/outer/inner/enum.BarSelf.html'
|
||||
pub(self) use reexports::BarSelf;
|
||||
// @!has 'foo/outer/inner/enum.BarLocal.html'
|
||||
use reexports::BarLocal;
|
||||
|
||||
// @has 'foo/outer/inner/fn.foo.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn foo()'
|
||||
// @has 'foo/outer/inner/fn.foo.html' '//pre[@class="rust item-decl"]' 'pub fn foo()'
|
||||
pub use reexports::foo;
|
||||
// @has 'foo/outer/inner/fn.foo_crate.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub(crate) fn foo_crate()'
|
||||
// @has 'foo/outer/inner/fn.foo_crate.html' '//pre[@class="rust item-decl"]' 'pub(crate) fn foo_crate()'
|
||||
pub(crate) use reexports::foo_crate;
|
||||
// @has 'foo/outer/inner/fn.foo_super.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub(in outer) fn foo_super()'
|
||||
// @has 'foo/outer/inner/fn.foo_super.html' '//pre[@class="rust item-decl"]' 'pub(in outer) fn foo_super()'
|
||||
pub(super) use::reexports::foo_super;
|
||||
// @!has 'foo/outer/inner/fn.foo_self.html'
|
||||
pub(self) use reexports::foo_self;
|
||||
// @!has 'foo/outer/inner/fn.foo_local.html'
|
||||
use reexports::foo_local;
|
||||
|
||||
// @has 'foo/outer/inner/type.Type.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub type Type ='
|
||||
// @has 'foo/outer/inner/type.Type.html' '//pre[@class="rust item-decl"]' 'pub type Type ='
|
||||
pub use reexports::Type;
|
||||
// @has 'foo/outer/inner/type.TypeCrate.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub(crate) type TypeCrate ='
|
||||
// @has 'foo/outer/inner/type.TypeCrate.html' '//pre[@class="rust item-decl"]' 'pub(crate) type TypeCrate ='
|
||||
pub(crate) use reexports::TypeCrate;
|
||||
// @has 'foo/outer/inner/type.TypeSuper.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub(in outer) type TypeSuper ='
|
||||
// @has 'foo/outer/inner/type.TypeSuper.html' '//pre[@class="rust item-decl"]' 'pub(in outer) type TypeSuper ='
|
||||
pub(super) use reexports::TypeSuper;
|
||||
// @!has 'foo/outer/inner/type.TypeSelf.html'
|
||||
pub(self) use reexports::TypeSelf;
|
||||
// @!has 'foo/outer/inner/type.TypeLocal.html'
|
||||
use reexports::TypeLocal;
|
||||
|
||||
// @has 'foo/outer/inner/union.Union.html' '//*[@class="item-decl"]' 'pub union Union {'
|
||||
// @has 'foo/outer/inner/union.Union.html' '//*[@class="rust item-decl"]' 'pub union Union {'
|
||||
pub use reexports::Union;
|
||||
// @has 'foo/outer/inner/union.UnionCrate.html' '//*[@class="item-decl"]' 'pub(crate) union UnionCrate {'
|
||||
// @has 'foo/outer/inner/union.UnionCrate.html' '//*[@class="rust item-decl"]' 'pub(crate) union UnionCrate {'
|
||||
pub(crate) use reexports::UnionCrate;
|
||||
// @has 'foo/outer/inner/union.UnionSuper.html' '//*[@class="item-decl"]' 'pub(in outer) union UnionSuper {'
|
||||
// @has 'foo/outer/inner/union.UnionSuper.html' '//*[@class="rust item-decl"]' 'pub(in outer) union UnionSuper {'
|
||||
pub(super) use reexports::UnionSuper;
|
||||
// @!has 'foo/outer/inner/union.UnionSelf.html'
|
||||
pub(self) use reexports::UnionSelf;
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
extern crate reexports;
|
||||
|
||||
// @has 'foo/macro.addr_of.html' '//*[@class="item-decl"]' 'pub macro addr_of($place:expr) {'
|
||||
// @has 'foo/macro.addr_of.html' '//*[@class="rust item-decl"]' 'pub macro addr_of($place:expr) {'
|
||||
pub use reexports::addr_of;
|
||||
// @!has 'foo/macro.addr_of_crate.html'
|
||||
pub(crate) use reexports::addr_of_crate;
|
||||
@ -13,7 +13,7 @@ pub(self) use reexports::addr_of_self;
|
||||
// @!has 'foo/macro.addr_of_local.html'
|
||||
use reexports::addr_of_local;
|
||||
|
||||
// @has 'foo/struct.Foo.html' '//*[@class="item-decl"]' 'pub struct Foo;'
|
||||
// @has 'foo/struct.Foo.html' '//*[@class="rust item-decl"]' 'pub struct Foo;'
|
||||
pub use reexports::Foo;
|
||||
// @!has 'foo/struct.FooCrate.html'
|
||||
pub(crate) use reexports::FooCrate;
|
||||
@ -22,7 +22,7 @@ pub(self) use reexports::FooSelf;
|
||||
// @!has 'foo/struct.FooLocal.html'
|
||||
use reexports::FooLocal;
|
||||
|
||||
// @has 'foo/enum.Bar.html' '//*[@class="item-decl"]' 'pub enum Bar {'
|
||||
// @has 'foo/enum.Bar.html' '//*[@class="rust item-decl"]' 'pub enum Bar {'
|
||||
pub use reexports::Bar;
|
||||
// @!has 'foo/enum.BarCrate.html'
|
||||
pub(crate) use reexports::BarCrate;
|
||||
@ -31,7 +31,7 @@ pub(self) use reexports::BarSelf;
|
||||
// @!has 'foo/enum.BarLocal.html'
|
||||
use reexports::BarLocal;
|
||||
|
||||
// @has 'foo/fn.foo.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn foo()'
|
||||
// @has 'foo/fn.foo.html' '//pre[@class="rust item-decl"]' 'pub fn foo()'
|
||||
pub use reexports::foo;
|
||||
// @!has 'foo/fn.foo_crate.html'
|
||||
pub(crate) use reexports::foo_crate;
|
||||
@ -40,7 +40,7 @@ pub(self) use reexports::foo_self;
|
||||
// @!has 'foo/fn.foo_local.html'
|
||||
use reexports::foo_local;
|
||||
|
||||
// @has 'foo/type.Type.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub type Type ='
|
||||
// @has 'foo/type.Type.html' '//pre[@class="rust item-decl"]' 'pub type Type ='
|
||||
pub use reexports::Type;
|
||||
// @!has 'foo/type.TypeCrate.html'
|
||||
pub(crate) use reexports::TypeCrate;
|
||||
@ -49,7 +49,7 @@ pub(self) use reexports::TypeSelf;
|
||||
// @!has 'foo/type.TypeLocal.html'
|
||||
use reexports::TypeLocal;
|
||||
|
||||
// @has 'foo/union.Union.html' '//*[@class="item-decl"]' 'pub union Union {'
|
||||
// @has 'foo/union.Union.html' '//*[@class="rust item-decl"]' 'pub union Union {'
|
||||
pub use reexports::Union;
|
||||
// @!has 'foo/union.UnionCrate.html'
|
||||
pub(crate) use reexports::UnionCrate;
|
||||
@ -60,7 +60,7 @@ use reexports::UnionLocal;
|
||||
|
||||
pub mod outer {
|
||||
pub mod inner {
|
||||
// @has 'foo/outer/inner/macro.addr_of.html' '//*[@class="item-decl"]' 'pub macro addr_of($place:expr) {'
|
||||
// @has 'foo/outer/inner/macro.addr_of.html' '//*[@class="rust item-decl"]' 'pub macro addr_of($place:expr) {'
|
||||
pub use reexports::addr_of;
|
||||
// @!has 'foo/outer/inner/macro.addr_of_crate.html'
|
||||
pub(crate) use reexports::addr_of_crate;
|
||||
@ -71,7 +71,7 @@ pub mod outer {
|
||||
// @!has 'foo/outer/inner/macro.addr_of_local.html'
|
||||
use reexports::addr_of_local;
|
||||
|
||||
// @has 'foo/outer/inner/struct.Foo.html' '//*[@class="item-decl"]' 'pub struct Foo;'
|
||||
// @has 'foo/outer/inner/struct.Foo.html' '//*[@class="rust item-decl"]' 'pub struct Foo;'
|
||||
pub use reexports::Foo;
|
||||
// @!has 'foo/outer/inner/struct.FooCrate.html'
|
||||
pub(crate) use reexports::FooCrate;
|
||||
@ -82,7 +82,7 @@ pub mod outer {
|
||||
// @!has 'foo/outer/inner/struct.FooLocal.html'
|
||||
use reexports::FooLocal;
|
||||
|
||||
// @has 'foo/outer/inner/enum.Bar.html' '//*[@class="item-decl"]' 'pub enum Bar {'
|
||||
// @has 'foo/outer/inner/enum.Bar.html' '//*[@class="rust item-decl"]' 'pub enum Bar {'
|
||||
pub use reexports::Bar;
|
||||
// @!has 'foo/outer/inner/enum.BarCrate.html'
|
||||
pub(crate) use reexports::BarCrate;
|
||||
@ -93,7 +93,7 @@ pub mod outer {
|
||||
// @!has 'foo/outer/inner/enum.BarLocal.html'
|
||||
use reexports::BarLocal;
|
||||
|
||||
// @has 'foo/outer/inner/fn.foo.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn foo()'
|
||||
// @has 'foo/outer/inner/fn.foo.html' '//pre[@class="rust item-decl"]' 'pub fn foo()'
|
||||
pub use reexports::foo;
|
||||
// @!has 'foo/outer/inner/fn.foo_crate.html'
|
||||
pub(crate) use reexports::foo_crate;
|
||||
@ -104,7 +104,7 @@ pub mod outer {
|
||||
// @!has 'foo/outer/inner/fn.foo_local.html'
|
||||
use reexports::foo_local;
|
||||
|
||||
// @has 'foo/outer/inner/type.Type.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub type Type ='
|
||||
// @has 'foo/outer/inner/type.Type.html' '//pre[@class="rust item-decl"]' 'pub type Type ='
|
||||
pub use reexports::Type;
|
||||
// @!has 'foo/outer/inner/type.TypeCrate.html'
|
||||
pub(crate) use reexports::TypeCrate;
|
||||
@ -115,7 +115,7 @@ pub mod outer {
|
||||
// @!has 'foo/outer/inner/type.TypeLocal.html'
|
||||
use reexports::TypeLocal;
|
||||
|
||||
// @has 'foo/outer/inner/union.Union.html' '//*[@class="item-decl"]' 'pub union Union {'
|
||||
// @has 'foo/outer/inner/union.Union.html' '//*[@class="rust item-decl"]' 'pub union Union {'
|
||||
pub use reexports::Union;
|
||||
// @!has 'foo/outer/inner/union.UnionCrate.html'
|
||||
pub(crate) use reexports::UnionCrate;
|
||||
|
@ -12,10 +12,10 @@ use std::marker::Destruct;
|
||||
|
||||
pub struct S<T>(T);
|
||||
|
||||
// @!has foo/trait.Tr.html '//div[@class="item-decl"]/pre[@class="rust"]/code/a[@class="trait"]' '~const'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]/code/a[@class="trait"]' 'Clone'
|
||||
// @!has - '//div[@class="item-decl"]/pre[@class="rust"]/code/span[@class="where"]' '~const'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]/code/span[@class="where"]' ': Clone'
|
||||
// @!has foo/trait.Tr.html '//pre[@class="rust item-decl"]/code/a[@class="trait"]' '~const'
|
||||
// @has - '//pre[@class="rust item-decl"]/code/a[@class="trait"]' 'Clone'
|
||||
// @!has - '//pre[@class="rust item-decl"]/code/span[@class="where"]' '~const'
|
||||
// @has - '//pre[@class="rust item-decl"]/code/span[@class="where"]' ': Clone'
|
||||
#[const_trait]
|
||||
pub trait Tr<T> {
|
||||
// @!has - '//section[@id="method.a"]/h4[@class="code-header"]' '~const'
|
||||
@ -45,10 +45,10 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
// @!has foo/fn.foo.html '//div[@class="item-decl"]/pre[@class="rust"]/code/a[@class="trait"]' '~const'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]/code/a[@class="trait"]' 'Clone'
|
||||
// @!has - '//div[@class="item-decl"]/pre[@class="rust"]/code/span[@class="where fmt-newline"]' '~const'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]/code/span[@class="where fmt-newline"]' ': Clone'
|
||||
// @!has foo/fn.foo.html '//pre[@class="rust item-decl"]/code/a[@class="trait"]' '~const'
|
||||
// @has - '//pre[@class="rust item-decl"]/code/a[@class="trait"]' 'Clone'
|
||||
// @!has - '//pre[@class="rust item-decl"]/code/span[@class="where fmt-newline"]' '~const'
|
||||
// @has - '//pre[@class="rust item-decl"]/code/span[@class="where fmt-newline"]' ': Clone'
|
||||
pub const fn foo<F: ~const Clone + ~const Destruct>()
|
||||
where
|
||||
Option<F>: ~const Clone + ~const Destruct,
|
||||
|
@ -7,16 +7,16 @@
|
||||
|
||||
extern "rust-intrinsic" {
|
||||
// @has 'foo/fn.abort.html'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub extern "rust-intrinsic" fn abort() -> !'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub extern "rust-intrinsic" fn abort() -> !'
|
||||
#[rustc_safe_intrinsic]
|
||||
pub fn abort() -> !;
|
||||
// @has 'foo/fn.unreachable.html'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub unsafe extern "rust-intrinsic" fn unreachable() -> !'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub unsafe extern "rust-intrinsic" fn unreachable() -> !'
|
||||
pub fn unreachable() -> !;
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
// @has 'foo/fn.needs_drop.html'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub unsafe extern "C" fn needs_drop() -> !'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub unsafe extern "C" fn needs_drop() -> !'
|
||||
pub fn needs_drop() -> !;
|
||||
}
|
||||
|
@ -4,25 +4,25 @@
|
||||
pub struct MyBox<T: ?Sized>(*const T);
|
||||
|
||||
// @has 'foo/fn.alpha.html'
|
||||
// @snapshot link_slice_u32 - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link_slice_u32 - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn alpha() -> &'static [u32] {
|
||||
loop {}
|
||||
}
|
||||
|
||||
// @has 'foo/fn.beta.html'
|
||||
// @snapshot link_slice_generic - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link_slice_generic - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn beta<T>() -> &'static [T] {
|
||||
loop {}
|
||||
}
|
||||
|
||||
// @has 'foo/fn.gamma.html'
|
||||
// @snapshot link_box_u32 - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link_box_u32 - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn gamma() -> MyBox<[u32]> {
|
||||
loop {}
|
||||
}
|
||||
|
||||
// @has 'foo/fn.delta.html'
|
||||
// @snapshot link_box_generic - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link_box_generic - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn delta<T>() -> MyBox<[T]> {
|
||||
loop {}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ struct BodyId {
|
||||
hir_id: usize,
|
||||
}
|
||||
|
||||
// @has 'foo/fn.body_owner.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn body_owner(_: BodyId)'
|
||||
// @has 'foo/fn.body_owner.html' '//pre[@class="rust item-decl"]' 'pub fn body_owner(_: BodyId)'
|
||||
pub fn body_owner(BodyId { hir_id }: BodyId) {
|
||||
// ...
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/fn.foo.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' "_: &(dyn ToString + 'static)"
|
||||
// @has - '//pre[@class="rust item-decl"]' "_: &(dyn ToString + 'static)"
|
||||
pub fn foo(_: &(ToString + 'static)) {}
|
||||
|
@ -55,7 +55,7 @@ pub union Union {
|
||||
|
||||
// @has 'toggle_item_contents/struct.PrivStruct.html'
|
||||
// @count - '//details[@class="toggle type-contents-toggle"]' 0
|
||||
// @has - '//div[@class="item-decl"]' '/* private fields */'
|
||||
// @has - '//pre[@class="rust item-decl"]' '/* private fields */'
|
||||
pub struct PrivStruct {
|
||||
a: usize,
|
||||
b: usize,
|
||||
@ -81,8 +81,8 @@ pub enum EnumStructVariant {
|
||||
}
|
||||
|
||||
// @has 'toggle_item_contents/enum.LargeEnum.html'
|
||||
// @count - '//div[@class="item-decl"]/pre//details[@class="toggle type-contents-toggle"]' 1
|
||||
// @has - '//div[@class="item-decl"]/pre//details[@class="toggle type-contents-toggle"]' 'Show 13 variants'
|
||||
// @count - '//pre[@class="rust item-decl"]//details[@class="toggle type-contents-toggle"]' 1
|
||||
// @has - '//pre[@class="rust item-decl"]//details[@class="toggle type-contents-toggle"]' 'Show 13 variants'
|
||||
pub enum LargeEnum {
|
||||
A, B, C, D, E, F(u8), G, H, I, J, K, L, M
|
||||
}
|
||||
|
@ -14,13 +14,13 @@ use std::fmt::Debug;
|
||||
// @has foo/index.html '//a[@class="traitalias"]' 'Foo'
|
||||
|
||||
// @has foo/traitalias.CopyAlias.html
|
||||
// @has - '//section[@id="main-content"]/div[@class="item-decl"]/pre' 'trait CopyAlias = Copy;'
|
||||
// @has - '//section[@id="main-content"]/pre[@class="rust item-decl"]' 'trait CopyAlias = Copy;'
|
||||
pub trait CopyAlias = Copy;
|
||||
// @has foo/traitalias.Alias2.html
|
||||
// @has - '//section[@id="main-content"]/div[@class="item-decl"]/pre' 'trait Alias2 = Copy + Debug;'
|
||||
// @has - '//section[@id="main-content"]/pre[@class="rust item-decl"]' 'trait Alias2 = Copy + Debug;'
|
||||
pub trait Alias2 = Copy + Debug;
|
||||
// @has foo/traitalias.Foo.html
|
||||
// @has - '//section[@id="main-content"]/div[@class="item-decl"]/pre' 'trait Foo<T> = Into<T> + Debug;'
|
||||
// @has - '//section[@id="main-content"]/pre[@class="rust item-decl"]' 'trait Foo<T> = Into<T> + Debug;'
|
||||
pub trait Foo<T> = Into<T> + Debug;
|
||||
// @has foo/fn.bar.html '//a[@href="traitalias.Alias2.html"]' 'Alias2'
|
||||
pub fn bar<T>() where T: Alias2 {}
|
||||
|
@ -19,7 +19,7 @@ pub struct Foo(
|
||||
);
|
||||
|
||||
// @has foo/enum.Bar.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'BarVariant(String),'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'BarVariant(String),'
|
||||
// @matches - '//*[@id="variant.BarVariant.fields"]/h4' '^Tuple Fields$'
|
||||
// @has - '//*[@id="variant.BarVariant.field.0"]' '0: String'
|
||||
// @has - '//*[@id="variant.BarVariant.fields"]//*[@class="docblock"]' 'Hello docs'
|
||||
|
@ -1,20 +1,20 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/fn.tuple0.html //pre 'pub fn tuple0(x: ())'
|
||||
// @snapshot link_unit - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link_unit - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn tuple0(x: ()) -> () { x }
|
||||
// @has foo/fn.tuple1.html //pre 'pub fn tuple1(x: (i32,)) -> (i32,)'
|
||||
// @snapshot link1_i32 - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link1_i32 - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn tuple1(x: (i32,)) -> (i32,) { x }
|
||||
// @has foo/fn.tuple2.html //pre 'pub fn tuple2(x: (i32, i32)) -> (i32, i32)'
|
||||
// @snapshot link2_i32 - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link2_i32 - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn tuple2(x: (i32, i32)) -> (i32, i32) { x }
|
||||
// @has foo/fn.tuple1_t.html //pre 'pub fn tuple1_t<T>(x: (T,)) -> (T,)'
|
||||
// @snapshot link1_t - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link1_t - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn tuple1_t<T>(x: (T,)) -> (T,) { x }
|
||||
// @has foo/fn.tuple2_t.html //pre 'pub fn tuple2_t<T>(x: (T, T)) -> (T, T)'
|
||||
// @snapshot link2_t - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link2_t - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn tuple2_t<T>(x: (T, T)) -> (T, T) { x }
|
||||
// @has foo/fn.tuple2_tu.html //pre 'pub fn tuple2_tu<T, U>(x: (T, U)) -> (T, U)'
|
||||
// @snapshot link2_tu - '//div[@class="item-decl"]/pre[@class="rust"]/code'
|
||||
// @snapshot link2_tu - '//pre[@class="rust item-decl"]/code'
|
||||
pub fn tuple2_tu<T, U>(x: (T, U)) -> (T, U) { x }
|
||||
|
@ -4,14 +4,14 @@
|
||||
|
||||
extern crate unit_return;
|
||||
|
||||
// @has 'foo/fn.f0.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'F: FnMut(u8) + Clone'
|
||||
// @has 'foo/fn.f0.html' '//pre[@class="rust item-decl"]' 'F: FnMut(u8) + Clone'
|
||||
pub fn f0<F: FnMut(u8) + Clone>(f: F) {}
|
||||
|
||||
// @has 'foo/fn.f1.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'F: FnMut(u16) + Clone'
|
||||
// @has 'foo/fn.f1.html' '//pre[@class="rust item-decl"]' 'F: FnMut(u16) + Clone'
|
||||
pub fn f1<F: FnMut(u16) -> () + Clone>(f: F) {}
|
||||
|
||||
// @has 'foo/fn.f2.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'F: FnMut(u32) + Clone'
|
||||
// @has 'foo/fn.f2.html' '//pre[@class="rust item-decl"]' 'F: FnMut(u32) + Clone'
|
||||
pub use unit_return::f2;
|
||||
|
||||
// @has 'foo/fn.f3.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'F: FnMut(u64) + Clone'
|
||||
// @has 'foo/fn.f3.html' '//pre[@class="rust item-decl"]' 'F: FnMut(u64) + Clone'
|
||||
pub use unit_return::f3;
|
||||
|
@ -1,6 +1,6 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has foo/fn.foo.html
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn foo<X, Y: ?Sized>(_: &X)'
|
||||
// @has - '//div[@class="item-decl"]/pre[@class="rust"]' 'where X: ?Sized,'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'pub fn foo<X, Y: ?Sized>(_: &X)'
|
||||
// @has - '//pre[@class="rust item-decl"]' 'where X: ?Sized,'
|
||||
pub fn foo<X, Y: ?Sized>(_: &X) where X: ?Sized {}
|
||||
|
@ -1 +1 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub struct Simd<T>(_)<br /><span class="where">where<br />    T: <a class="trait" href="trait.MyTrait.html" title="trait foo::MyTrait">MyTrait</a></span>;</code></pre></div>
|
||||
<pre class="rust item-decl"><code>pub struct Simd<T>(_)<br /><span class="where">where<br />    T: <a class="trait" href="trait.MyTrait.html" title="trait foo::MyTrait">MyTrait</a></span>;</code></pre>
|
@ -1,8 +1,8 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub trait TraitWhere {
|
||||
<pre class="rust item-decl"><code>pub trait TraitWhere {
|
||||
type <a href="#associatedtype.Item" class="associatedtype">Item</a><'a><br />    <span class="where">where<br />        Self: 'a</span>;
|
||||
|
||||
fn <a href="#method.func" class="fn">func</a>(self)<br />    <span class="where">where<br />        Self: <a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
|
||||
{ ... }
|
||||
<span class="item-spacer" /> fn <a href="#method.lines" class="fn">lines</a>(self) -> <a class="struct" href="{{channel}}/std/io/struct.Lines.html" title="struct std::io::Lines">Lines</a><Self><br />    <span class="where">where<br />        Self: <a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
|
||||
{ ... }
|
||||
}</code></pre></div>
|
||||
}</code></pre>
|
@ -22,13 +22,13 @@ impl<D> Delta<D> where D: MyTrait {
|
||||
pub struct Echo<E>(E);
|
||||
|
||||
// @has 'foo/struct.Simd.html'
|
||||
// @snapshot SWhere_Simd_item-decl - '//div[@class="item-decl"]'
|
||||
// @snapshot SWhere_Simd_item-decl - '//pre[@class="rust item-decl"]'
|
||||
pub struct Simd<T>([T; 1])
|
||||
where
|
||||
T: MyTrait;
|
||||
|
||||
// @has 'foo/trait.TraitWhere.html'
|
||||
// @snapshot SWhere_TraitWhere_item-decl - '//div[@class="item-decl"]'
|
||||
// @snapshot SWhere_TraitWhere_item-decl - '//pre[@class="rust item-decl"]'
|
||||
pub trait TraitWhere {
|
||||
type Item<'a> where Self: 'a;
|
||||
|
||||
@ -57,6 +57,6 @@ pub enum Foxtrot<F> { Foxtrot1(F) }
|
||||
// "impl<F> MyTrait for Foxtrot<F>where F: MyTrait"
|
||||
impl<F> MyTrait for Foxtrot<F>where F: MyTrait {}
|
||||
|
||||
// @has foo/type.Golf.html '//div[@class="item-decl"]/pre[@class="rust"]' \
|
||||
// @has foo/type.Golf.html '//pre[@class="rust item-decl"]' \
|
||||
// "type Golf<T>where T: Clone, = (T, T)"
|
||||
pub type Golf<T> where T: Clone = (T, T);
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub enum Cow<'a, B><span class="where fmt-newline">where<br />    B: <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + 'a,</span>{
|
||||
<pre class="rust item-decl"><code>pub enum Cow<'a, B><span class="where fmt-newline">where<br />    B: <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + 'a,</span>{
|
||||
Borrowed(<a class="primitive" href="{{channel}}/std/primitive.reference.html">&'a B</a>),
|
||||
Whatever(<a class="primitive" href="{{channel}}/std/primitive.u32.html">u32</a>),
|
||||
}</code></pre></div>
|
||||
}</code></pre>
|
@ -1,4 +1,4 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub enum Cow2<'a, B: ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + 'a> {
|
||||
<pre class="rust item-decl"><code>pub enum Cow2<'a, B: ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + 'a> {
|
||||
Borrowed(<a class="primitive" href="{{channel}}/std/primitive.reference.html">&'a B</a>),
|
||||
Whatever(<a class="primitive" href="{{channel}}/std/primitive.u32.html">u32</a>),
|
||||
}</code></pre></div>
|
||||
}</code></pre>
|
@ -4,7 +4,7 @@
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has 'foo/trait.ToOwned.html'
|
||||
// @snapshot trait - '//*[@class="item-decl"]'
|
||||
// @snapshot trait - '//*[@class="rust item-decl"]'
|
||||
pub trait ToOwned<T>
|
||||
where T: Clone
|
||||
{
|
||||
@ -14,7 +14,7 @@ where T: Clone
|
||||
}
|
||||
|
||||
// @has 'foo/trait.ToOwned2.html'
|
||||
// @snapshot trait2 - '//*[@class="item-decl"]'
|
||||
// @snapshot trait2 - '//*[@class="rust item-decl"]'
|
||||
// There should be a whitespace before `{` in this case!
|
||||
pub trait ToOwned2<T: Clone> {
|
||||
type Owned;
|
||||
@ -23,7 +23,7 @@ pub trait ToOwned2<T: Clone> {
|
||||
}
|
||||
|
||||
// @has 'foo/enum.Cow.html'
|
||||
// @snapshot enum - '//*[@class="item-decl"]'
|
||||
// @snapshot enum - '//*[@class="rust item-decl"]'
|
||||
pub enum Cow<'a, B: ?Sized + 'a>
|
||||
where
|
||||
B: ToOwned<Clone>,
|
||||
@ -33,7 +33,7 @@ where
|
||||
}
|
||||
|
||||
// @has 'foo/enum.Cow2.html'
|
||||
// @snapshot enum2 - '//*[@class="item-decl"]'
|
||||
// @snapshot enum2 - '//*[@class="rust item-decl"]'
|
||||
// There should be a whitespace before `{` in this case!
|
||||
pub enum Cow2<'a, B: ?Sized + ToOwned<Clone> + 'a> {
|
||||
Borrowed(&'a B),
|
||||
@ -41,7 +41,7 @@ pub enum Cow2<'a, B: ?Sized + ToOwned<Clone> + 'a> {
|
||||
}
|
||||
|
||||
// @has 'foo/struct.Struct.html'
|
||||
// @snapshot struct - '//*[@class="item-decl"]'
|
||||
// @snapshot struct - '//*[@class="rust item-decl"]'
|
||||
pub struct Struct<'a, B: ?Sized + 'a>
|
||||
where
|
||||
B: ToOwned<Clone>,
|
||||
@ -51,7 +51,7 @@ where
|
||||
}
|
||||
|
||||
// @has 'foo/struct.Struct2.html'
|
||||
// @snapshot struct2 - '//*[@class="item-decl"]'
|
||||
// @snapshot struct2 - '//*[@class="rust item-decl"]'
|
||||
// There should be a whitespace before `{` in this case!
|
||||
pub struct Struct2<'a, B: ?Sized + ToOwned<Clone> + 'a> {
|
||||
pub a: &'a B,
|
||||
@ -59,7 +59,7 @@ pub struct Struct2<'a, B: ?Sized + ToOwned<Clone> + 'a> {
|
||||
}
|
||||
|
||||
// @has 'foo/union.Union.html'
|
||||
// @snapshot union - '//*[@class="item-decl"]'
|
||||
// @snapshot union - '//*[@class="rust item-decl"]'
|
||||
pub union Union<'a, B: ?Sized + 'a>
|
||||
where
|
||||
B: ToOwned<Clone>,
|
||||
@ -69,7 +69,7 @@ where
|
||||
}
|
||||
|
||||
// @has 'foo/union.Union2.html'
|
||||
// @snapshot union2 - '//*[@class="item-decl"]'
|
||||
// @snapshot union2 - '//*[@class="rust item-decl"]'
|
||||
// There should be a whitespace before `{` in this case!
|
||||
pub union Union2<'a, B: ?Sized + ToOwned<Clone> + 'a> {
|
||||
a: &'a B,
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub struct Struct<'a, B><span class="where fmt-newline">where<br />    B: <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + 'a,</span>{
|
||||
<pre class="rust item-decl"><code>pub struct Struct<'a, B><span class="where fmt-newline">where<br />    B: <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + 'a,</span>{
|
||||
pub a: <a class="primitive" href="{{channel}}/std/primitive.reference.html">&'a B</a>,
|
||||
pub b: <a class="primitive" href="{{channel}}/std/primitive.u32.html">u32</a>,
|
||||
}</code></pre></div>
|
||||
}</code></pre>
|
@ -1,4 +1,4 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub struct Struct2<'a, B: ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + 'a> {
|
||||
<pre class="rust item-decl"><code>pub struct Struct2<'a, B: ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + 'a> {
|
||||
pub a: <a class="primitive" href="{{channel}}/std/primitive.reference.html">&'a B</a>,
|
||||
pub b: <a class="primitive" href="{{channel}}/std/primitive.u32.html">u32</a>,
|
||||
}</code></pre></div>
|
||||
}</code></pre>
|
@ -1,6 +1,6 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub trait ToOwned<T><span class="where fmt-newline">where<br />    T: <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span>{
|
||||
<pre class="rust item-decl"><code>pub trait ToOwned<T><span class="where fmt-newline">where<br />    T: <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span>{
|
||||
type <a href="#associatedtype.Owned" class="associatedtype">Owned</a>;
|
||||
|
||||
fn <a href="#tymethod.to_owned" class="fn">to_owned</a>(&self) -> Self::<a class="associatedtype" href="trait.ToOwned.html#associatedtype.Owned" title="type foo::ToOwned::Owned">Owned</a>;
|
||||
<span class="item-spacer" /> fn <a href="#tymethod.whatever" class="fn">whatever</a>(&self) -> T;
|
||||
}</code></pre></div>
|
||||
}</code></pre>
|
@ -1,6 +1,6 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub trait ToOwned2<T: <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> {
|
||||
<pre class="rust item-decl"><code>pub trait ToOwned2<T: <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> {
|
||||
type <a href="#associatedtype.Owned" class="associatedtype">Owned</a>;
|
||||
|
||||
fn <a href="#tymethod.to_owned" class="fn">to_owned</a>(&self) -> Self::<a class="associatedtype" href="trait.ToOwned2.html#associatedtype.Owned" title="type foo::ToOwned2::Owned">Owned</a>;
|
||||
<span class="item-spacer" /> fn <a href="#tymethod.whatever" class="fn">whatever</a>(&self) -> T;
|
||||
}</code></pre></div>
|
||||
}</code></pre>
|
@ -1,3 +1,3 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub union Union<'a, B><span class="where fmt-newline">where<br />    B: <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + 'a,</span>{
|
||||
<pre class="rust item-decl"><code>pub union Union<'a, B><span class="where fmt-newline">where<br />    B: <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + 'a,</span>{
|
||||
/* private fields */
|
||||
}</code></pre></div>
|
||||
}</code></pre>
|
@ -1,3 +1,3 @@
|
||||
<div class="item-decl"><pre class="rust"><code>pub union Union2<'a, B: ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + 'a> {
|
||||
<pre class="rust item-decl"><code>pub union Union2<'a, B: ?<a class="trait" href="{{channel}}/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.ToOwned.html" title="trait foo::ToOwned">ToOwned</a><dyn <a class="trait" href="{{channel}}/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>> + 'a> {
|
||||
/* private fields */
|
||||
}</code></pre></div>
|
||||
}</code></pre>
|
@ -1,5 +1,5 @@
|
||||
use std::fmt::Debug;
|
||||
|
||||
// @has 'wrapping/fn.foo.html' '//div[@class="item-decl"]/pre[@class="rust"]' 'pub fn foo() -> impl Debug'
|
||||
// @count - '//div[@class="item-decl"]/pre[@class="rust"]/br' 0
|
||||
// @has 'wrapping/fn.foo.html' '//pre[@class="rust item-decl"]' 'pub fn foo() -> impl Debug'
|
||||
// @count - '//pre[@class="rust item-decl"]/br' 0
|
||||
pub fn foo() -> impl Debug {}
|
||||
|
Loading…
x
Reference in New Issue
Block a user