Skip to content

Commit

Permalink
auto merge of #11018 : sfackler/rust/variant-strip, r=alexcrichton
Browse files Browse the repository at this point in the history
Previously, if every variant was private, it would display as a
variantless enum instead of having the "some variants stripped" comment.
  • Loading branch information
bors committed Dec 18, 2013
2 parents 09b8406 + 758f6e6 commit 1fee5cd
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 11 deletions.
15 changes: 5 additions & 10 deletions src/librustdoc/fold.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ pub trait DocFolder {
let inner = inner;
let c = |x| self.fold_item(x);
let inner = match inner {
StructItem(i) => {
let mut i = i;
StructItem(mut i) => {
let mut foo = ~[]; swap(&mut foo, &mut i.fields);
let num_fields = foo.len();
i.fields.extend(&mut foo.move_iter().filter_map(|x| self.fold_item(x)));
Expand All @@ -35,15 +34,14 @@ pub trait DocFolder {
ModuleItem(i) => {
ModuleItem(self.fold_mod(i))
},
EnumItem(i) => {
let mut i = i;
EnumItem(mut i) => {
let mut foo = ~[]; swap(&mut foo, &mut i.variants);
let num_variants = foo.len();
i.variants.extend(&mut foo.move_iter().filter_map(|x| self.fold_item(x)));
i.variants_stripped |= num_variants != i.variants.len();
EnumItem(i)
},
TraitItem(i) => {
TraitItem(mut i) => {
fn vtrm<T: DocFolder>(this: &mut T, trm: TraitMethod) -> Option<TraitMethod> {
match trm {
Required(it) => {
Expand All @@ -60,22 +58,19 @@ pub trait DocFolder {
},
}
}
let mut i = i;
let mut foo = ~[]; swap(&mut foo, &mut i.methods);
i.methods.extend(&mut foo.move_iter().filter_map(|x| vtrm(self, x)));
TraitItem(i)
},
ImplItem(i) => {
let mut i = i;
ImplItem(mut i) => {
let mut foo = ~[]; swap(&mut foo, &mut i.methods);
i.methods.extend(&mut foo.move_iter().filter_map(|x| self.fold_item(x)));
ImplItem(i)
},
VariantItem(i) => {
let i2 = i.clone(); // this clone is small
match i.kind {
StructVariant(j) => {
let mut j = j;
StructVariant(mut j) => {
let mut foo = ~[]; swap(&mut foo, &mut j.fields);
let num_fields = foo.len();
j.fields.extend(&mut foo.move_iter().filter_map(c));
Expand Down
2 changes: 1 addition & 1 deletion src/librustdoc/html/render.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1202,7 +1202,7 @@ fn item_enum(w: &mut Writer, it: &clean::Item, e: &clean::Enum) {
VisSpace(it.visibility),
it.name.get_ref().as_slice(),
e.generics);
if e.variants.len() == 0 {
if e.variants.len() == 0 && !e.variants_stripped {
write!(w, " \\{\\}");
} else {
write!(w, " \\{\n");
Expand Down

0 comments on commit 1fee5cd

Please sign in to comment.