about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-12-17 23:51:34 -0800
committerbors <bors@rust-lang.org>2013-12-17 23:51:34 -0800
commit1fee5cd953837d77bf3bcaaf9dcb4b869ae39090 (patch)
tree7b3c24776a164ffa9e7300818f8758b071db2d16
parent09b8406638abca96fa6794b0263c1e7459234ecc (diff)
parent758f6e6e6898ec2b908a1d26759793c5c0fd2a3f (diff)
downloadrust-1fee5cd953837d77bf3bcaaf9dcb4b869ae39090.tar.gz
rust-1fee5cd953837d77bf3bcaaf9dcb4b869ae39090.zip
auto merge of #11018 : sfackler/rust/variant-strip, r=alexcrichton
Previously, if every variant was private, it would display as a
variantless enum instead of having the "some variants stripped" comment.
-rw-r--r--src/librustdoc/fold.rs15
-rw-r--r--src/librustdoc/html/render.rs2
2 files changed, 6 insertions, 11 deletions
diff --git a/src/librustdoc/fold.rs b/src/librustdoc/fold.rs
index 080c7de835c..696ea6ec9b8 100644
--- a/src/librustdoc/fold.rs
+++ b/src/librustdoc/fold.rs
@@ -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)));
@@ -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) => {
@@ -60,13 +58,11 @@ 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)
@@ -74,8 +70,7 @@ pub trait DocFolder {
             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));
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index cf12eecd914..3d2e03785ed 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -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");