Skip to content

Commit

Permalink
rustdoc: Show type layout for type aliases
Browse files Browse the repository at this point in the history
At first, you might think, "Why not just click through to the aliased
type?" But, if a type alias instantiates all of the generic parameters
of the aliased type, then it can show layout info even though the
aliased type cannot (because we can't compute layout for generic types).
So, I think it's useful to show layout info for type aliases.

This is a followup of 78d4b453ad2e19d44011b26fc55c949bff5dba3d
(originally part of rust-lang#83501).
  • Loading branch information
camelid committed Dec 9, 2021
1 parent e6b883c commit e36da67
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/librustdoc/html/render/print_item.rs
Original file line number Diff line number Diff line change
Expand Up @@ -976,6 +976,7 @@ fn item_typedef(
// associated items from the aliased type (see discussion in #32077), but
// we need #14072 to make sense of the generics.
render_assoc_items(w, cx, it, def_id, AssocItemRender::All);
document_type_layout(w, cx, def_id);
}

fn item_union(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, s: &clean::Union) {
Expand Down
12 changes: 12 additions & 0 deletions src/test/rustdoc/type-layout.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,18 @@ pub struct GenericLifetimes<'a>(&'a str);
// @has - '(unsized)'
pub struct Unsized([u8]);

// @has type_layout/type.TypeAlias.html 'Size: '
// @has - ' bytes'
pub type TypeAlias = X;

// @has type_layout/type.GenericTypeAlias.html 'Size: '
// @has - '8 bytes'
pub type GenericTypeAlias = (Generic<(u32, ())>, Generic<u32>);

// Regression test for the rustdoc equivalent of #85103.
// @has type_layout/type.Edges.html 'Encountered an error during type layout; the type failed to be normalized.'
pub type Edges<'a, E> = std::borrow::Cow<'a, [E]>;

// @!has type_layout/trait.MyTrait.html 'Size: '
pub trait MyTrait {}

Expand Down

0 comments on commit e36da67

Please sign in to comment.