diff --git a/crates/turbo-tasks-macros/src/value_macro.rs b/crates/turbo-tasks-macros/src/value_macro.rs index 8b06032e0ba8b..c4393b2e73cde 100644 --- a/crates/turbo-tasks-macros/src/value_macro.rs +++ b/crates/turbo-tasks-macros/src/value_macro.rs @@ -242,6 +242,15 @@ pub fn value(args: TokenStream, input: TokenStream) -> TokenStream { }); } } + if inner_type.is_none() { + item.span() + .unwrap() + .error( + "#[turbo_tasks::value(transparent)] is only valid with single-item unit \ + structs", + ) + .emit(); + } } let ident = match &item { diff --git a/crates/turbopack-css/src/module_asset.rs b/crates/turbopack-css/src/module_asset.rs index 2830f8e38b551..c622b18c1bd3b 100644 --- a/crates/turbopack-css/src/module_asset.rs +++ b/crates/turbopack-css/src/module_asset.rs @@ -108,7 +108,7 @@ impl Asset for ModuleCssAsset { /// A CSS class that is exported from a CSS module. /// /// See [`ModuleCssClasses`] for more information. -#[turbo_tasks::value(transparent)] +#[turbo_tasks::value] #[derive(Debug, Clone)] enum ModuleCssClass { Local { diff --git a/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs b/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs index d7aa68e969446..e75b328267dc0 100644 --- a/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs +++ b/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs @@ -11,13 +11,7 @@ use turbopack_ecmascript::{CustomTransformer, TransformContext}; /// Internally this contains a `CompiledPluginModuleBytes`, which points to the /// compiled, serialized wasmer::Module instead of raw file bytes to reduce the /// cost of the compilation. -#[turbo_tasks::value( - transparent, - serialization = "none", - eq = "manual", - into = "new", - cell = "new" -)] +#[turbo_tasks::value(serialization = "none", eq = "manual", into = "new", cell = "new")] pub struct SwcPluginModule( #[turbo_tasks(trace_ignore)] #[cfg(feature = "swc_ecma_transform_plugin")] diff --git a/crates/turbopack-node/src/route_matcher.rs b/crates/turbopack-node/src/route_matcher.rs index 18ef21acd1358..4341da5d97a17 100644 --- a/crates/turbopack-node/src/route_matcher.rs +++ b/crates/turbopack-node/src/route_matcher.rs @@ -1,7 +1,7 @@ use indexmap::IndexMap; use turbo_tasks::Vc; -#[turbo_tasks::value(transparent)] +#[turbo_tasks::value] #[derive(Debug, Clone)] #[serde(untagged)] pub enum Param { diff --git a/crates/turbopack-node/src/transforms/postcss.rs b/crates/turbopack-node/src/transforms/postcss.rs index 05e423ebf156b..c0ea0e3c96126 100644 --- a/crates/turbopack-node/src/transforms/postcss.rs +++ b/crates/turbopack-node/src/transforms/postcss.rs @@ -36,7 +36,7 @@ use crate::{ #[derive(Debug, Serialize, Deserialize, Clone)] #[serde(rename_all = "camelCase")] -#[turbo_tasks::value(transparent, serialization = "custom")] +#[turbo_tasks::value(serialization = "custom")] struct PostCssProcessingResult { css: String, map: Option, diff --git a/crates/turbopack-node/src/transforms/webpack.rs b/crates/turbopack-node/src/transforms/webpack.rs index d5518d606a9ae..745ca87cb0cfd 100644 --- a/crates/turbopack-node/src/transforms/webpack.rs +++ b/crates/turbopack-node/src/transforms/webpack.rs @@ -54,7 +54,7 @@ use crate::{ #[derive(Debug, Serialize, Deserialize, Clone)] #[serde(rename_all = "camelCase")] -#[turbo_tasks::value(transparent, serialization = "custom")] +#[turbo_tasks::value(serialization = "custom")] struct WebpackLoadersProcessingResult { source: String, map: Option,