From 76418d9b825d19026494ba4a0e568baeb90767f0 Mon Sep 17 00:00:00 2001 From: nils <48135649+Nilstrieb@users.noreply.github.com> Date: Mon, 23 Jan 2023 09:13:37 +0100 Subject: [PATCH] track traits lol --- src/passes/item_deleter.rs | 2 ++ src/passes/privatize.rs | 12 ------------ src/processor/mod.rs | 18 ++++++++++++++---- src/processor/reaper.rs | 3 +++ 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/passes/item_deleter.rs b/src/passes/item_deleter.rs index cb736e7..7fac7ec 100644 --- a/src/passes/item_deleter.rs +++ b/src/passes/item_deleter.rs @@ -88,6 +88,8 @@ impl VisitMut for Visitor<'_> { tracking!(visit_item_fn_mut); tracking!(visit_impl_item_method_mut); tracking!(visit_item_impl_mut); + tracking!(visit_field_mut); + tracking!(visit_item_struct_mut); } #[derive(Default)] diff --git a/src/passes/privatize.rs b/src/passes/privatize.rs index b8a5f6a..c2aa30d 100644 --- a/src/passes/privatize.rs +++ b/src/passes/privatize.rs @@ -31,18 +31,6 @@ impl VisitMut for Visitor<'_> { } } - fn visit_field_mut(&mut self, field: &mut syn::Field) { - self.current_path.push(field.ident.to_string()); - syn::visit_mut::visit_field_mut(self, method); - self.current_path.pop(); - } - - fn visit_item_struct_mut(&mut self, struct_: &mut syn::ItemStruct) { - self.current_path.push(struct_.ident.to_string()); - syn::visit_mut::visit_item_struct_mut(self, method); - self.current_path.pop(); - } - tracking!(); } diff --git a/src/processor/mod.rs b/src/processor/mod.rs index 1588dab..fed84fc 100644 --- a/src/processor/mod.rs +++ b/src/processor/mod.rs @@ -220,6 +220,7 @@ macro_rules! tracking { tracking!(visit_item_mod_mut); tracking!(visit_field_mut); tracking!(visit_item_struct_mut); + tracking!(visit_item_trait_mut); }; (visit_item_fn_mut) => { fn visit_item_fn_mut(&mut self, func: &mut syn::ItemFn) { @@ -252,15 +253,24 @@ macro_rules! tracking { }; (visit_field_mut) => { fn visit_field_mut(&mut self, field: &mut syn::Field) { - self.current_path.push(field.ident.to_string()); - syn::visit_mut::visit_field_mut(self, method); - self.current_path.pop(); + if let Some(ident) = &field.ident { + self.current_path.push(ident.to_string()); + syn::visit_mut::visit_field_mut(self, field); + self.current_path.pop(); + } } }; (visit_item_struct_mut) => { fn visit_item_struct_mut(&mut self, struct_: &mut syn::ItemStruct) { self.current_path.push(struct_.ident.to_string()); - syn::visit_mut::visit_item_struct_mut(self, method); + syn::visit_mut::visit_item_struct_mut(self, struct_); + self.current_path.pop(); + } + }; + (visit_item_trait_mut) => { + fn visit_item_trait_mut(&mut self, trait_: &mut syn::ItemTrait) { + self.current_path.push(trait_.ident.to_string()); + syn::visit_mut::visit_item_trait_mut(self, trait_); self.current_path.pop(); } }; diff --git a/src/processor/reaper.rs b/src/processor/reaper.rs index 65e70b4..b784974 100644 --- a/src/processor/reaper.rs +++ b/src/processor/reaper.rs @@ -310,4 +310,7 @@ impl VisitMut for FindUnusedFunction<'_> { tracking!(visit_item_fn_mut); tracking!(visit_impl_item_method_mut); + tracking!(visit_field_mut); + tracking!(visit_item_struct_mut); + tracking!(visit_item_trait_mut); }