diff --git a/.changeset/fresh-deref-patterns.md b/.changeset/fresh-deref-patterns.md new file mode 100644 index 000000000..2364b23f0 --- /dev/null +++ b/.changeset/fresh-deref-patterns.md @@ -0,0 +1,8 @@ +--- +"@swc/plugin-styled-jsx": major +"@swc/plugin-swc-confidential": major +"@swc/plugin-swc-magic": major +"@swc/plugin-swc-sdk": major +--- + +Migrate from Rust `box_patterns` to `deref_patterns` and update the pinned toolchain to `nightly-2026-04-10`. diff --git a/packages/styled-jsx/src/lib.rs b/packages/styled-jsx/src/lib.rs index 408f0c537..0caebfc96 100644 --- a/packages/styled-jsx/src/lib.rs +++ b/packages/styled-jsx/src/lib.rs @@ -1,5 +1,5 @@ #![allow(clippy::not_unsafe_ptr_arg_deref)] -#![feature(box_patterns)] +#![feature(deref_patterns)] use styled_jsx::{visitor, visitor::Config}; use swc_core::{ diff --git a/packages/styled-jsx/transform/src/lib.rs b/packages/styled-jsx/transform/src/lib.rs index ecb4ef2b7..cf7de796b 100644 --- a/packages/styled-jsx/transform/src/lib.rs +++ b/packages/styled-jsx/transform/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(box_patterns)] +#![feature(deref_patterns)] pub mod style; mod transform_css_lightningcss; mod transform_css_swc; diff --git a/packages/styled-jsx/transform/src/visitor.rs b/packages/styled-jsx/transform/src/visitor.rs index 19107339e..5ec8468a4 100644 --- a/packages/styled-jsx/transform/src/visitor.rs +++ b/packages/styled-jsx/transform/src/visitor.rs @@ -1032,7 +1032,7 @@ fn add_hash_statement((id, hash): (Id, String)) -> Stmt { fn is_styled_css_import(item: &ModuleItem) -> bool { if let ModuleItem::ModuleDecl(ModuleDecl::Import(ImportDecl { - src: box Str { value, .. }, + src: Str { value, .. }, .. })) = item { diff --git a/packages/swc-confidential/src/lib.rs b/packages/swc-confidential/src/lib.rs index 0e4ab7e0f..c52352829 100644 --- a/packages/swc-confidential/src/lib.rs +++ b/packages/swc-confidential/src/lib.rs @@ -1,5 +1,5 @@ #![allow(clippy::not_unsafe_ptr_arg_deref)] -#![feature(box_patterns)] +#![feature(deref_patterns)] use swc_core::{ ecma::{ast::Program, visit::VisitMutWith}, diff --git a/packages/swc-confidential/transform/src/lib.rs b/packages/swc-confidential/transform/src/lib.rs index bb516d9db..ae4624d2f 100644 --- a/packages/swc-confidential/transform/src/lib.rs +++ b/packages/swc-confidential/transform/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(box_patterns)] +#![feature(deref_patterns)] use magic_crypt::{new_magic_crypt, MagicCryptTrait}; use serde::Deserialize; diff --git a/packages/swc-magic/src/lib.rs b/packages/swc-magic/src/lib.rs index 6d2ac561c..b2deca213 100644 --- a/packages/swc-magic/src/lib.rs +++ b/packages/swc-magic/src/lib.rs @@ -1,5 +1,5 @@ #![allow(clippy::not_unsafe_ptr_arg_deref)] -#![feature(box_patterns)] +#![feature(deref_patterns)] use swc_core::{ ecma::{ast::Program, visit::VisitMutWith}, diff --git a/packages/swc-magic/transform/src/import_analyzer.rs b/packages/swc-magic/transform/src/import_analyzer.rs index 79efa648c..62d6e5e89 100644 --- a/packages/swc-magic/transform/src/import_analyzer.rs +++ b/packages/swc-magic/transform/src/import_analyzer.rs @@ -26,7 +26,7 @@ impl ImportMap { } Expr::Member(MemberExpr { - obj: box Expr::Ident(obj), + obj: Expr::Ident(obj), prop: MemberProp::Ident(prop), .. }) => { diff --git a/packages/swc-magic/transform/src/lib.rs b/packages/swc-magic/transform/src/lib.rs index 10f806fad..9b97f973a 100644 --- a/packages/swc-magic/transform/src/lib.rs +++ b/packages/swc-magic/transform/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(box_patterns)] +#![feature(deref_patterns)] use import_analyzer::ImportMap; use serde::Deserialize; diff --git a/packages/swc-sdk/src/lib.rs b/packages/swc-sdk/src/lib.rs index 91ffe8d89..0bff2a529 100644 --- a/packages/swc-sdk/src/lib.rs +++ b/packages/swc-sdk/src/lib.rs @@ -1,5 +1,5 @@ #![allow(clippy::not_unsafe_ptr_arg_deref)] -#![feature(box_patterns)] +#![feature(deref_patterns)] use swc_core::{ ecma::{ast::Program, visit::VisitMutWith}, diff --git a/packages/swc-sdk/transform/src/import_analyzer.rs b/packages/swc-sdk/transform/src/import_analyzer.rs index 9d71be7b3..5e021af6e 100644 --- a/packages/swc-sdk/transform/src/import_analyzer.rs +++ b/packages/swc-sdk/transform/src/import_analyzer.rs @@ -35,7 +35,7 @@ impl ImportMap { } Expr::Member(MemberExpr { - obj: box Expr::Ident(obj), + obj: Expr::Ident(obj), prop: MemberProp::Ident(prop), .. }) => { @@ -75,7 +75,7 @@ impl ImportMap { } Expr::Member(MemberExpr { - obj: box Expr::Ident(obj), + obj: Expr::Ident(obj), prop: MemberProp::Ident(prop), .. }) => { diff --git a/packages/swc-sdk/transform/src/lib.rs b/packages/swc-sdk/transform/src/lib.rs index aa4d0df28..4d76f225a 100644 --- a/packages/swc-sdk/transform/src/lib.rs +++ b/packages/swc-sdk/transform/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(box_patterns)] +#![feature(deref_patterns)] #![feature(never_type)] use swc_common::{comments::Comments, errors::HANDLER, util::take::Take, Mark, DUMMY_SP}; diff --git a/rust-toolchain.toml b/rust-toolchain.toml index e94ea15fa..fda56523b 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly-2025-05-06" +channel = "nightly-2026-04-10" components = ["rustfmt", "clippy"] profile = "minimal" targets = ["wasm32-unknown-unknown", "wasm32-wasip1"]