Files
oxc-guard 0389c4010e release(crates): oxc v0.146.0 (#25912)
### 🚀 Features

- 83cb516 minifier: Improve negation of expressions in boolean context (#25755) (Armano)

### 🐛 Bug Fixes

- 134fb22 isolated-declarations: Preserve unresolved parameter types (#25909) (Dunqing)
- 526c2b3 codegen: Remove deprecated test APIs (#25889) (camc314)
- 344a9b2 codegen: Align enum template sourcemaps (#25872) (camc314)

### ⚡ Performance

- 5ef0c93 minifier: Unwrap all unary exprs without creating dummy expressions (#25891) (Armano)
- 8783524 packages/codegen: Remove loop from `growMappingBuffer` (#25886) (overlookmotel)
- b6b14c0 packages/codegen: Remove redundant branch (#25885) (overlookmotel)
- be6adf0 packages/sourcemap: Make `location` passed to `recordSourceMapping` always a number (#25884) (overlookmotel)
- f720f15 packages/codegen: Take named-mapping only code off hot path in `recordSourceMapping` (#25883) (overlookmotel)
- a734af5 packages/codegen: Remove redundant setting of `last` in `printImportAttributes` and `printIf` (#25882) (overlookmotel)
- c6e44c6 packages/codegen: Combine 2 writes in `printJSXElement` (#25881) (overlookmotel)
- 8801662 packages/codegen: Remove redundant mapping from `printParams` (#25880) (overlookmotel)

### 📚 Documentation

- 5ad330e packages/codegen: Reformat comments (#25876) (overlookmotel)
2026-08-19 08:29:51 +00:00
..

Oxc AST Macros

Procedural macros for generating AST-related code and ensuring memory layout consistency.

Overview

This crate provides procedural macros that generate boilerplate code for AST nodes, ensuring consistent memory layout and providing derived traits automatically.

Key Features

  • #[ast] attribute: Marks types as AST nodes and generates required traits
  • Memory layout control: Ensures #[repr(C)] for predictable memory layout
  • Trait derivation: Automatically derives common traits like Debug, Clone, etc.
  • Code generation: Reduces boilerplate and ensures consistency across AST types

What the #[ast] Macro Does

  1. Adds #[repr(C)]: Ensures predictable memory layout across platforms
  2. Marker for tooling: Identifies types as AST nodes for code generation tools
  3. Trait derivation: Automatically implements common traits
  4. Consistency: Ensures all AST nodes follow the same patterns

Architecture

This macro system enables:

  • Maintainable AST: Reduces boilerplate across hundreds of AST types
  • Consistent layout: Critical for performance and correctness
  • Tool integration: Allows oxc_ast_tools to generate visitor code
  • Type safety: Ensures all AST nodes have required traits

The macros are designed to be transparent and generate minimal, efficient code.