From 0d33ba31c4c914bb79064e626a2a4fbc684e1a5f Mon Sep 17 00:00:00 2001 From: overlookmotel <557937+overlookmotel@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:19:24 +0000 Subject: [PATCH] refactor(ast_tools): pass `Codegen` to `prepare` methods (#9818) Pure refactor. In `oxc_ast_tools`, pass `&Codegen` to `prepare` method of `Derive`s and `Generator`s. This is preparation for changes to come to `ESTree` generator. --- tasks/ast_tools/src/codegen.rs | 6 +++--- tasks/ast_tools/src/derives/mod.rs | 2 +- tasks/ast_tools/src/generators/assert_layouts.rs | 2 +- tasks/ast_tools/src/generators/ast_kind.rs | 2 +- tasks/ast_tools/src/generators/mod.rs | 2 +- tasks/ast_tools/src/generators/visit.rs | 2 +- tasks/ast_tools/src/main.rs | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tasks/ast_tools/src/codegen.rs b/tasks/ast_tools/src/codegen.rs index bc7ac43285dd8..dee8a20f058c2 100644 --- a/tasks/ast_tools/src/codegen.rs +++ b/tasks/ast_tools/src/codegen.rs @@ -112,10 +112,10 @@ pub enum GeneratorOrDerive { impl GeneratorOrDerive { /// Execute `prepare` method on the [`Generator`] or [`Derive`]. - pub fn prepare(self, schema: &mut Schema) { + pub fn prepare(self, schema: &mut Schema, codegen: &Codegen) { match self { - Self::Generator(generator) => generator.prepare(schema), - Self::Derive(derive) => derive.prepare(schema), + Self::Generator(generator) => generator.prepare(schema, codegen), + Self::Derive(derive) => derive.prepare(schema, codegen), } } diff --git a/tasks/ast_tools/src/derives/mod.rs b/tasks/ast_tools/src/derives/mod.rs index 3730d6467eb13..dd190941ed6e4 100644 --- a/tasks/ast_tools/src/derives/mod.rs +++ b/tasks/ast_tools/src/derives/mod.rs @@ -132,7 +132,7 @@ pub trait Derive: Runner { /// /// Runs before any `generate` or `derive` method runs. #[expect(unused_variables)] - fn prepare(&self, schema: &mut Schema) {} + fn prepare(&self, schema: &mut Schema, codegen: &Codegen) {} /// Generate trait implementation for a type. fn derive(&self, type_def: StructOrEnum<'_>, schema: &Schema) -> TokenStream; diff --git a/tasks/ast_tools/src/generators/assert_layouts.rs b/tasks/ast_tools/src/generators/assert_layouts.rs index 0824e7b41448a..492c2bdba0c65 100644 --- a/tasks/ast_tools/src/generators/assert_layouts.rs +++ b/tasks/ast_tools/src/generators/assert_layouts.rs @@ -34,7 +34,7 @@ define_generator!(AssertLayouts); impl Generator for AssertLayouts { /// Calculate layouts of all types. - fn prepare(&self, schema: &mut Schema) { + fn prepare(&self, schema: &mut Schema, _codegen: &Codegen) { for type_id in schema.types.indices() { calculate_layout(type_id, schema); } diff --git a/tasks/ast_tools/src/generators/ast_kind.rs b/tasks/ast_tools/src/generators/ast_kind.rs index bc66cee53c2fe..4ca6d58b09176 100644 --- a/tasks/ast_tools/src/generators/ast_kind.rs +++ b/tasks/ast_tools/src/generators/ast_kind.rs @@ -96,7 +96,7 @@ define_generator!(AstKindGenerator); impl Generator for AstKindGenerator { /// Set `has_kind` for structs and enums which are visited, and not on blacklist. - fn prepare(&self, schema: &mut Schema) { + fn prepare(&self, schema: &mut Schema, _codegen: &Codegen) { // Set `has_kind` to `true` for all visited types for type_def in &mut schema.types { match type_def { diff --git a/tasks/ast_tools/src/generators/mod.rs b/tasks/ast_tools/src/generators/mod.rs index 83bd7bd818382..6bb1af03544b9 100644 --- a/tasks/ast_tools/src/generators/mod.rs +++ b/tasks/ast_tools/src/generators/mod.rs @@ -99,7 +99,7 @@ pub trait Generator: Runner { /// /// Runs before any `generate` or `derive` method runs. #[expect(unused_variables)] - fn prepare(&self, schema: &mut Schema) {} + fn prepare(&self, schema: &mut Schema, codegen: &Codegen) {} /// Generate single output. #[expect(unused_variables, clippy::unimplemented)] diff --git a/tasks/ast_tools/src/generators/visit.rs b/tasks/ast_tools/src/generators/visit.rs index 98c772c847ff1..3fcfb61ecf739 100644 --- a/tasks/ast_tools/src/generators/visit.rs +++ b/tasks/ast_tools/src/generators/visit.rs @@ -45,7 +45,7 @@ impl Generator for VisitGenerator { /// Create names for `visit_*` methods and `walk_*` functions for all `Vec`s /// whose inner type has a visitor. - fn prepare(&self, schema: &mut Schema) { + fn prepare(&self, schema: &mut Schema, _codegen: &Codegen) { for type_id in schema.types.indices() { let Some(vec_def) = schema.types[type_id].as_vec() else { continue }; diff --git a/tasks/ast_tools/src/main.rs b/tasks/ast_tools/src/main.rs index 64796fb320361..e354fee28229c 100644 --- a/tasks/ast_tools/src/main.rs +++ b/tasks/ast_tools/src/main.rs @@ -300,7 +300,7 @@ fn main() { // Run `prepare` actions let runners = get_runners(); for runner in &runners { - runner.prepare(&mut schema); + runner.prepare(&mut schema, &codegen); } // Run generators