about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustdoc/fold.rs24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/librustdoc/fold.rs b/src/librustdoc/fold.rs
index 65cd71307aa..cd0f44e5696 100644
--- a/src/librustdoc/fold.rs
+++ b/src/librustdoc/fold.rs
@@ -20,22 +20,28 @@ crate trait DocFolder: Sized {
             StructItem(mut i) => {
                 let num_fields = i.fields.len();
                 i.fields = i.fields.into_iter().filter_map(|x| self.fold_item(x)).collect();
-                i.fields_stripped |=
-                    num_fields != i.fields.len() || i.fields.iter().any(|f| f.is_stripped());
+                if !i.fields_stripped {
+                    i.fields_stripped =
+                        num_fields != i.fields.len() || i.fields.iter().any(|f| f.is_stripped());
+                }
                 StructItem(i)
             }
             UnionItem(mut i) => {
                 let num_fields = i.fields.len();
                 i.fields = i.fields.into_iter().filter_map(|x| self.fold_item(x)).collect();
-                i.fields_stripped |=
-                    num_fields != i.fields.len() || i.fields.iter().any(|f| f.is_stripped());
+                if !i.fields_stripped {
+                    i.fields_stripped =
+                        num_fields != i.fields.len() || i.fields.iter().any(|f| f.is_stripped());
+                }
                 UnionItem(i)
             }
             EnumItem(mut i) => {
                 let num_variants = i.variants.len();
                 i.variants = i.variants.into_iter().filter_map(|x| self.fold_item(x)).collect();
-                i.variants_stripped |=
-                    num_variants != i.variants.len() || i.variants.iter().any(|f| f.is_stripped());
+                if !i.variants_stripped {
+                    i.variants_stripped = num_variants != i.variants.len()
+                        || i.variants.iter().any(|f| f.is_stripped());
+                }
                 EnumItem(i)
             }
             TraitItem(mut i) => {
@@ -50,8 +56,10 @@ crate trait DocFolder: Sized {
                 Variant::Struct(mut j) => {
                     let num_fields = j.fields.len();
                     j.fields = j.fields.into_iter().filter_map(|x| self.fold_item(x)).collect();
-                    j.fields_stripped |=
-                        num_fields != j.fields.len() || j.fields.iter().any(|f| f.is_stripped());
+                    if !j.fields_stripped {
+                        j.fields_stripped = num_fields != j.fields.len()
+                            || j.fields.iter().any(|f| f.is_stripped());
+                    }
                     VariantItem(Variant::Struct(j))
                 }
                 Variant::Tuple(fields) => {