From 136029ee58e00754f5b1f938be381f2649b263f3 Mon Sep 17 00:00:00 2001 From: overlookmotel <557937+overlookmotel@users.noreply.github.com> Date: Sun, 20 Oct 2024 21:28:58 +0000 Subject: [PATCH] refactor(ast_tools): give `GeneratorOutput` and `SideEffect` named fields (#6685) Pure refactor. Named fields are clearer. --- tasks/ast_tools/src/codegen.rs | 16 +++++++++------- tasks/ast_tools/src/generators/assert_layouts.rs | 8 ++++---- tasks/ast_tools/src/generators/ast_builder.rs | 8 ++++---- tasks/ast_tools/src/generators/ast_kind.rs | 8 ++++---- tasks/ast_tools/src/generators/mod.rs | 5 ++++- tasks/ast_tools/src/generators/visit.rs | 10 ++++++++-- 6 files changed, 33 insertions(+), 22 deletions(-) diff --git a/tasks/ast_tools/src/codegen.rs b/tasks/ast_tools/src/codegen.rs index 582c278115a4a..4bea7891e1655 100644 --- a/tasks/ast_tools/src/codegen.rs +++ b/tasks/ast_tools/src/codegen.rs @@ -29,21 +29,23 @@ pub struct AstCodegenResult { pub outputs: Vec, } -pub struct SideEffect(/* path */ pub PathBuf, /* output */ pub Vec); +pub struct SideEffect { + pub path: PathBuf, + pub content: Vec, +} impl SideEffect { /// Apply the side-effect pub fn apply(self) -> std::io::Result<()> { - let Self(path, data) = self; + let Self { path, content } = self; let path = path.into_os_string(); let path = path.to_str().unwrap(); - write_all_to(&data, path)?; + write_all_to(&content, path)?; Ok(()) } pub fn path(&self) -> String { - let Self(path, _) = self; - let path = path.to_string_lossy(); + let path = self.path.to_string_lossy(); path.replace('\\', "/") } } @@ -51,13 +53,13 @@ impl SideEffect { impl From<(PathBuf, TokenStream)> for SideEffect { fn from((path, stream): (PathBuf, TokenStream)) -> Self { let content = pretty_print(&stream); - Self(path, content.as_bytes().into()) + Self { path, content: content.into() } } } impl From for SideEffect { fn from(output: GeneratorOutput) -> Self { - Self::from((output.0, output.1)) + Self::from((output.path, output.tokens)) } } diff --git a/tasks/ast_tools/src/generators/assert_layouts.rs b/tasks/ast_tools/src/generators/assert_layouts.rs index 6e58c7a176f92..4eedfce06c862 100644 --- a/tasks/ast_tools/src/generators/assert_layouts.rs +++ b/tasks/ast_tools/src/generators/assert_layouts.rs @@ -28,9 +28,9 @@ impl Generator for AssertLayouts { let header = generated_header!(); - GeneratorOutput( - output(crate::AST_CRATE, "assert_layouts.rs"), - quote! { + GeneratorOutput { + path: output(crate::AST_CRATE, "assert_layouts.rs"), + tokens: quote! { #header use std::mem::{align_of, offset_of, size_of}; @@ -55,7 +55,7 @@ impl Generator for AssertLayouts { #[cfg(not(any(target_pointer_width = "64", target_pointer_width = "32")))] const _: () = panic!("Platforms with pointer width other than 64 or 32 bit are not supported"); }, - ) + } } } diff --git a/tasks/ast_tools/src/generators/ast_builder.rs b/tasks/ast_tools/src/generators/ast_builder.rs index 18b61a2894810..1b50d08a799d3 100644 --- a/tasks/ast_tools/src/generators/ast_builder.rs +++ b/tasks/ast_tools/src/generators/ast_builder.rs @@ -34,9 +34,9 @@ impl Generator for AstBuilderGenerator { let header = generated_header!(); - GeneratorOutput( - output(crate::AST_CRATE, "ast_builder.rs"), - quote! { + GeneratorOutput { + path: output(crate::AST_CRATE, "ast_builder.rs"), + tokens: quote! { #header #![allow( @@ -64,7 +64,7 @@ impl Generator for AstBuilderGenerator { #(#fns)* } }, - ) + } } } diff --git a/tasks/ast_tools/src/generators/ast_kind.rs b/tasks/ast_tools/src/generators/ast_kind.rs index 088e43053fc6f..48f5cf0c33c6b 100644 --- a/tasks/ast_tools/src/generators/ast_kind.rs +++ b/tasks/ast_tools/src/generators/ast_kind.rs @@ -175,9 +175,9 @@ impl Generator for AstKindGenerator { let header = generated_header!(); - GeneratorOutput( - output(crate::AST_CRATE, "ast_kind.rs"), - quote! { + GeneratorOutput { + path: output(crate::AST_CRATE, "ast_kind.rs"), + tokens: quote! { #header use oxc_span::{GetSpan, Span}; @@ -214,6 +214,6 @@ impl Generator for AstKindGenerator { #(#as_ast_kind_impls)* } }, - ) + } } } diff --git a/tasks/ast_tools/src/generators/mod.rs b/tasks/ast_tools/src/generators/mod.rs index e16f356d06f41..870813abe2497 100644 --- a/tasks/ast_tools/src/generators/mod.rs +++ b/tasks/ast_tools/src/generators/mod.rs @@ -27,7 +27,10 @@ pub trait Generator { } #[derive(Debug, Clone)] -pub struct GeneratorOutput(/* output path */ pub PathBuf, pub TokenStream); +pub struct GeneratorOutput { + pub path: PathBuf, + pub tokens: TokenStream, +} macro_rules! define_generator { ($vis:vis struct $ident:ident $($lifetime:lifetime)? $($rest:tt)*) => { diff --git a/tasks/ast_tools/src/generators/visit.rs b/tasks/ast_tools/src/generators/visit.rs index b017f04ad835e..fada8e5761b32 100644 --- a/tasks/ast_tools/src/generators/visit.rs +++ b/tasks/ast_tools/src/generators/visit.rs @@ -28,13 +28,19 @@ define_generator! { impl Generator for VisitGenerator { fn generate(&mut self, ctx: &LateCtx) -> GeneratorOutput { - GeneratorOutput(output(crate::AST_CRATE, "visit.rs"), generate_visit::(ctx)) + GeneratorOutput { + path: output(crate::AST_CRATE, "visit.rs"), + tokens: generate_visit::(ctx), + } } } impl Generator for VisitMutGenerator { fn generate(&mut self, ctx: &LateCtx) -> GeneratorOutput { - GeneratorOutput(output(crate::AST_CRATE, "visit_mut.rs"), generate_visit::(ctx)) + GeneratorOutput { + path: output(crate::AST_CRATE, "visit_mut.rs"), + tokens: generate_visit::(ctx), + } } }