]> git.lizzy.rs Git - rust.git/blobdiff - src/librustdoc/fold.rs
Rollup merge of #92274 - woppopo:const_deallocate, r=oli-obk
[rust.git] / src / librustdoc / fold.rs
index e8069f39f45dcd95661afc4ba4eff34388a8f151..cd0f44e5696fec3e2038dcb5d5a76f24b8fbfbb5 100644 (file)
@@ -20,22 +20,28 @@ fn fold_inner_recur(&mut self, kind: ItemKind) -> ItemKind {
             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 @@ fn fold_inner_recur(&mut self, kind: ItemKind) -> ItemKind {
                 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) => {
@@ -60,8 +68,26 @@ fn fold_inner_recur(&mut self, kind: ItemKind) -> ItemKind {
                 }
                 Variant::CLike => VariantItem(Variant::CLike),
             },
-            // FIXME: list all cases explicitly
-            x => x,
+            ExternCrateItem { src: _ }
+            | ImportItem(_)
+            | FunctionItem(_)
+            | TypedefItem(_, _)
+            | OpaqueTyItem(_)
+            | StaticItem(_)
+            | ConstantItem(_)
+            | TraitAliasItem(_)
+            | TyMethodItem(_)
+            | MethodItem(_, _)
+            | StructFieldItem(_)
+            | ForeignFunctionItem(_)
+            | ForeignStaticItem(_)
+            | ForeignTypeItem
+            | MacroItem(_)
+            | ProcMacroItem(_)
+            | PrimitiveItem(_)
+            | AssocConstItem(_, _)
+            | AssocTypeItem(_, _)
+            | KeywordItem(_) => kind,
         }
     }