Skip to content

Commit 22bd069

Browse files
committed
Bypass instantiating Span-specific visit functions
1 parent bf0a11d commit 22bd069

File tree

6 files changed

+28
-10
lines changed

6 files changed

+28
-10
lines changed

codegen/src/fold.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -207,9 +207,15 @@ fn node(traits: &mut TokenStream, impls: &mut TokenStream, s: &Node, defs: &Defi
207207
};
208208
}
209209

210+
let traits_body = if s.ident == "Span" {
211+
quote!(i)
212+
} else {
213+
quote!(#fold_fn(self, i))
214+
};
215+
210216
traits.extend(quote! {
211217
fn #fold_fn(&mut self, i: #ty) -> #ty {
212-
#fold_fn(self, i)
218+
#traits_body
213219
}
214220
});
215221

codegen/src/visit.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,17 @@ fn node(traits: &mut TokenStream, impls: &mut TokenStream, s: &Node, defs: &Defi
183183
Some(quote!('ast))
184184
};
185185

186+
let traits_body = if s.ident == "Span" {
187+
None
188+
} else {
189+
Some(quote! {
190+
#visit_fn(self, i);
191+
})
192+
};
193+
186194
traits.extend(quote! {
187195
fn #visit_fn(&mut self, i: &#ast_lifetime #ty) {
188-
#visit_fn(self, i);
196+
#traits_body
189197
}
190198
});
191199

codegen/src/visit_mut.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,17 @@ fn node(traits: &mut TokenStream, impls: &mut TokenStream, s: &Node, defs: &Defi
186186
}
187187
}
188188

189+
let traits_body = if s.ident == "Span" {
190+
None
191+
} else {
192+
Some(quote! {
193+
#visit_mut_fn(self, i);
194+
})
195+
};
196+
189197
traits.extend(quote! {
190198
fn #visit_mut_fn(&mut self, i: &mut #ty) {
191-
#visit_mut_fn(self, i);
199+
#traits_body
192200
}
193201
});
194202

src/gen/fold.rs

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/gen/visit.rs

+1-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/gen/visit_mut.rs

+1-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)