From fa0b3021a95c3ba640f2dd996c80c3b58cb3cc13 Mon Sep 17 00:00:00 2001 From: nils <48135649+Nilstrieb@users.noreply.github.com> Date: Mon, 23 Jan 2023 09:07:04 +0100 Subject: [PATCH] improve tracking for structs and fields --- src/passes/privatize.rs | 12 ++++++++++++ src/processor/mod.rs | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/passes/privatize.rs b/src/passes/privatize.rs index c2aa30d..b8a5f6a 100644 --- a/src/passes/privatize.rs +++ b/src/passes/privatize.rs @@ -31,6 +31,18 @@ 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 c4bf1ea..1588dab 100644 --- a/src/processor/mod.rs +++ b/src/processor/mod.rs @@ -218,6 +218,8 @@ macro_rules! tracking { tracking!(visit_impl_item_method_mut); tracking!(visit_item_impl_mut); tracking!(visit_item_mod_mut); + tracking!(visit_field_mut); + tracking!(visit_item_struct_mut); }; (visit_item_fn_mut) => { fn visit_item_fn_mut(&mut self, func: &mut syn::ItemFn) { @@ -248,5 +250,19 @@ macro_rules! tracking { self.current_path.pop(); } }; + (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(); + } + }; + (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); + self.current_path.pop(); + } + }; } pub(crate) use tracking;