From b4cc94686bdc17072754c8967bffe71bf5e7c57a Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Wed, 29 Oct 2025 17:06:54 +0100 Subject: [PATCH 1/2] Turbopack: remove the .into() alias to .cell() --- crates/next-api/src/module_graph.rs | 2 +- crates/next-core/src/middleware.rs | 2 +- .../next-core/src/next_app/app_route_entry.rs | 2 +- .../next-core/src/next_app/metadata/route.rs | 2 +- crates/next-core/src/next_font/google/mod.rs | 8 +- crates/next-core/src/next_font/issue.rs | 2 +- crates/next-core/src/next_font/local/mod.rs | 2 +- crates/next-core/src/next_import_map.rs | 2 +- crates/next-core/src/next_server/resolve.rs | 4 +- crates/next-core/src/next_shared/resolve.rs | 2 +- .../src/next_shared/webpack_rules/babel.rs | 2 +- crates/next-core/src/raw_ecmascript_module.rs | 2 +- crates/next-core/src/segment_config.rs | 2 +- .../turbo-tasks-backend/tests/all_in_one.rs | 2 +- .../tests/trait_ref_cell_mode.rs | 6 +- .../crates/turbo-tasks-fetch/src/error.rs | 2 +- turbopack/crates/turbo-tasks-fs/src/lib.rs | 10 +- .../src/generic_type_macro.rs | 2 +- .../turbo-tasks-macros/src/primitive_macro.rs | 2 +- .../turbo-tasks-macros/src/value_macro.rs | 92 ++++--------------- turbopack/crates/turbo-tasks/src/lib.rs | 34 ++----- .../crates/turbo-tasks/src/vc/cell_mode.rs | 4 +- turbopack/crates/turbo-tasks/src/vc/mod.rs | 2 +- .../src/ecmascript/list/update.rs | 2 +- .../turbopack-core/src/module_graph/mod.rs | 2 +- .../src/module_graph/module_batches.rs | 2 +- .../crates/turbopack-core/src/resolve/mod.rs | 14 +-- .../turbopack-core/src/resolve/options.rs | 12 +-- .../crates/turbopack-core/src/version.rs | 6 +- turbopack/crates/turbopack-css/src/asset.rs | 4 +- .../crates/turbopack-css/src/code_gen.rs | 8 +- turbopack/crates/turbopack-css/src/process.rs | 10 +- .../turbopack-css/src/references/import.rs | 4 +- .../turbopack-css/src/references/mod.rs | 2 +- .../turbopack-css/src/references/url.rs | 4 +- .../transform/swc_ecma_transform_plugins.rs | 2 +- .../src/async_chunk/chunk_item.rs | 2 +- .../src/chunk/placeable.rs | 2 +- .../src/inlined_bytes_module.rs | 2 +- .../src/manifest/chunk_item.rs | 2 +- .../src/manifest/loader_item.rs | 2 +- .../src/references/esm/base.rs | 4 +- .../src/references/mod.rs | 2 +- .../src/references/type_issue.rs | 2 +- .../turbopack-ecmascript/src/transform/mod.rs | 8 +- .../turbopack-ecmascript/src/webpack/parse.rs | 4 +- .../src/worker_chunk/chunk_item.rs | 2 +- turbopack/crates/turbopack-env/src/issue.rs | 2 +- turbopack/crates/turbopack-json/src/lib.rs | 2 +- .../crates/turbopack-node/src/evaluate.rs | 2 +- turbopack/crates/turbopack-node/src/pool.rs | 2 +- .../turbopack-resolve/src/ecmascript.rs | 2 +- .../crates/turbopack-resolve/src/resolve.rs | 2 +- .../src/resolve_options_context.rs | 4 +- .../turbopack-resolve/src/typescript.rs | 2 +- turbopack/crates/turbopack-static/src/ecma.rs | 4 +- .../crates/turbopack-tests/tests/execution.rs | 2 +- .../crates/turbopack-tests/tests/snapshot.rs | 2 +- .../benches/node_file_trace.rs | 2 +- turbopack/crates/turbopack-wasm/src/raw.rs | 2 +- turbopack/crates/turbopack/src/graph/mod.rs | 16 ++-- 61 files changed, 126 insertions(+), 214 deletions(-) diff --git a/crates/next-api/src/module_graph.rs b/crates/next-api/src/module_graph.rs index 9372de26f036b..04464d9338e01 100644 --- a/crates/next-api/src/module_graph.rs +++ b/crates/next-api/src/module_graph.rs @@ -487,7 +487,7 @@ impl Issue for CssGlobalImportIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::ProcessModule.into() + IssueStage::ProcessModule.cell() } // TODO(PACK-4879): compute the source information by following the module references diff --git a/crates/next-core/src/middleware.rs b/crates/next-core/src/middleware.rs index 51cd7c290caae..b7e875ffa4768 100644 --- a/crates/next-core/src/middleware.rs +++ b/crates/next-core/src/middleware.rs @@ -122,7 +122,7 @@ struct MiddlewareMissingExportIssue { impl Issue for MiddlewareMissingExportIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Transform.into() + IssueStage::Transform.cell() } fn severity(&self) -> IssueSeverity { diff --git a/crates/next-core/src/next_app/app_route_entry.rs b/crates/next-core/src/next_app/app_route_entry.rs index a6468b47ff730..7d8d3df74eaea 100644 --- a/crates/next-core/src/next_app/app_route_entry.rs +++ b/crates/next-core/src/next_app/app_route_entry.rs @@ -40,7 +40,7 @@ pub async fn get_app_route_entry( let config = if let Some(original_segment_config) = original_segment_config { let mut segment_config = segment_from_source.owned().await?; segment_config.apply_parent_config(&*original_segment_config.await?); - segment_config.into() + segment_config.cell() } else { segment_from_source }; diff --git a/crates/next-core/src/next_app/metadata/route.rs b/crates/next-core/src/next_app/metadata/route.rs index 371ace80ad5fe..a9312079b0469 100644 --- a/crates/next-core/src/next_app/metadata/route.rs +++ b/crates/next-core/src/next_app/metadata/route.rs @@ -557,7 +557,7 @@ impl Issue for StaticMetadataFileSizeIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::ProcessModule.into() + IssueStage::ProcessModule.cell() } #[turbo_tasks::function] diff --git a/crates/next-core/src/next_font/google/mod.rs b/crates/next-core/src/next_font/google/mod.rs index a9dbb51683e47..7a03e56d3e856 100644 --- a/crates/next-core/src/next_font/google/mod.rs +++ b/crates/next-core/src/next_font/google/mod.rs @@ -146,7 +146,7 @@ impl NextFontGoogleReplacer { impl ImportMappingReplacement for NextFontGoogleReplacer { #[turbo_tasks::function] fn replace(&self, _capture: Vc) -> Vc { - ReplacedImportMapping::Ignore.into() + ReplacedImportMapping::Ignore.cell() } /// Intercepts requests for `next/font/google/target.css` and returns a @@ -166,14 +166,14 @@ impl ImportMappingReplacement for NextFontGoogleReplacer { fragment: _, } = request else { - return Ok(ImportMapResult::NoEntry.into()); + return Ok(ImportMapResult::NoEntry.cell()); }; let this = &*self.await?; if can_use_next_font(this.project_path.clone(), query).await? { Ok(self.import_map_result(query.clone())) } else { - Ok(ImportMapResult::NoEntry.into()) + Ok(ImportMapResult::NoEntry.cell()) } } } @@ -338,7 +338,7 @@ impl NextFontGoogleCssModuleReplacer { impl ImportMappingReplacement for NextFontGoogleCssModuleReplacer { #[turbo_tasks::function] fn replace(&self, _capture: Vc) -> Vc { - ReplacedImportMapping::Ignore.into() + ReplacedImportMapping::Ignore.cell() } /// Intercepts requests for the css module made by the virtual JavaScript diff --git a/crates/next-core/src/next_font/issue.rs b/crates/next-core/src/next_font/issue.rs index 46389d04e23c2..e1dad5de23836 100644 --- a/crates/next-core/src/next_font/issue.rs +++ b/crates/next-core/src/next_font/issue.rs @@ -14,7 +14,7 @@ pub(crate) struct NextFontIssue { impl Issue for NextFontIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::CodeGen.into() + IssueStage::CodeGen.cell() } fn severity(&self) -> IssueSeverity { diff --git a/crates/next-core/src/next_font/local/mod.rs b/crates/next-core/src/next_font/local/mod.rs index a69f76db428f3..766fd8143ad05 100644 --- a/crates/next-core/src/next_font/local/mod.rs +++ b/crates/next-core/src/next_font/local/mod.rs @@ -166,7 +166,7 @@ impl BeforeResolvePlugin for NextFontLocalResolvePlugin { "{}.js", get_request_id(options_vc.font_family().await?, request_hash) ))?, - AssetContent::file(FileContent::Content(file_content.into()).into()), + AssetContent::file(FileContent::Content(file_content.into()).cell()), ) .to_resolved() .await?; diff --git a/crates/next-core/src/next_import_map.rs b/crates/next-core/src/next_import_map.rs index 4548cdb1db7bd..4fdc9a30c1b1a 100644 --- a/crates/next-core/src/next_import_map.rs +++ b/crates/next-core/src/next_import_map.rs @@ -1253,7 +1253,7 @@ impl Issue for MissingNextFolderIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Resolve.into() + IssueStage::Resolve.cell() } #[turbo_tasks::function] diff --git a/crates/next-core/src/next_server/resolve.rs b/crates/next-core/src/next_server/resolve.rs index 9e6c15cea4c21..456302e4b6b09 100644 --- a/crates/next-core/src/next_server/resolve.rs +++ b/crates/next-core/src/next_server/resolve.rs @@ -25,7 +25,7 @@ use turbopack_core::{ /// The predicated based on which the [ExternalCjsModulesResolvePlugin] decides /// whether to mark a module as external. -#[turbo_tasks::value(into = "shared")] +#[turbo_tasks::value(shared)] pub enum ExternalPredicate { /// Mark all modules as external if they're not listed in the list. /// Applies only to imports outside of node_modules. @@ -483,7 +483,7 @@ impl Issue for ExternalizeIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Config.into() + IssueStage::Config.cell() } #[turbo_tasks::function] diff --git a/crates/next-core/src/next_shared/resolve.rs b/crates/next-core/src/next_shared/resolve.rs index 04156bf3766c4..05d14dc17cc59 100644 --- a/crates/next-core/src/next_shared/resolve.rs +++ b/crates/next-core/src/next_shared/resolve.rs @@ -64,7 +64,7 @@ impl Issue for InvalidImportModuleIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Resolve.into() + IssueStage::Resolve.cell() } #[turbo_tasks::function] diff --git a/crates/next-core/src/next_shared/webpack_rules/babel.rs b/crates/next-core/src/next_shared/webpack_rules/babel.rs index 5280d5e5ba7a2..cb795fae2335f 100644 --- a/crates/next-core/src/next_shared/webpack_rules/babel.rs +++ b/crates/next-core/src/next_shared/webpack_rules/babel.rs @@ -304,7 +304,7 @@ struct BabelPluginReactCompilerResolutionIssue { impl Issue for BabelPluginReactCompilerResolutionIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Transform.into() + IssueStage::Transform.cell() } fn severity(&self) -> IssueSeverity { diff --git a/crates/next-core/src/raw_ecmascript_module.rs b/crates/next-core/src/raw_ecmascript_module.rs index 46c5303334231..0fb6e665c91be 100644 --- a/crates/next-core/src/raw_ecmascript_module.rs +++ b/crates/next-core/src/raw_ecmascript_module.rs @@ -309,7 +309,7 @@ impl EcmascriptChunkItem for RawEcmascriptChunkItem { }, ..Default::default() } - .into()) + .cell()) } .instrument(span) .await diff --git a/crates/next-core/src/segment_config.rs b/crates/next-core/src/segment_config.rs index 227012f894a16..af87e10ffc40a 100644 --- a/crates/next-core/src/segment_config.rs +++ b/crates/next-core/src/segment_config.rs @@ -235,7 +235,7 @@ impl Issue for NextSegmentConfigParsingIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Parse.into() + IssueStage::Parse.cell() } #[turbo_tasks::function] diff --git a/turbopack/crates/turbo-tasks-backend/tests/all_in_one.rs b/turbopack/crates/turbo-tasks-backend/tests/all_in_one.rs index cab243e6c8191..b71b68b2502f5 100644 --- a/turbopack/crates/turbo-tasks-backend/tests/all_in_one.rs +++ b/turbopack/crates/turbo-tasks-backend/tests/all_in_one.rs @@ -25,7 +25,7 @@ async fn all_in_one() { value: 42, next: Some(MyStructValue::new(a).to_resolved().await?), } - .into(); + .cell(); let result = my_function(a, b.get_last(), c, MyEnumValue::Yeah(42)); assert_eq!(*result.my_trait_function().await?, "42"); diff --git a/turbopack/crates/turbo-tasks-backend/tests/trait_ref_cell_mode.rs b/turbopack/crates/turbo-tasks-backend/tests/trait_ref_cell_mode.rs index b39c066c11d5a..eca23d19ef077 100644 --- a/turbopack/crates/turbo-tasks-backend/tests/trait_ref_cell_mode.rs +++ b/turbopack/crates/turbo-tasks-backend/tests/trait_ref_cell_mode.rs @@ -7,7 +7,7 @@ use turbo_tasks_testing::{Registration, register, run_once}; static REGISTRATION: Registration = register!(); -// Test that with `cell = "shared"`, the cell will be re-used as long as the +// Test that with `cell = "compare"`, the cell will be re-used as long as the // value is equal. #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_trait_ref_shared_cell_mode() { @@ -32,7 +32,7 @@ async fn test_trait_ref_shared_cell_mode() { assert_eq!(*TraitRef::cell(trait_ref.clone()).get_value().await?, 42); } - // because we're using `cell = "shared"`, these trait refs must use the same + // because we're using `cell = "compare"`, these trait refs must use the same // underlying Arc/SharedRef (by identity) assert!(TraitRef::ptr_eq(&trait_ref_a, &trait_ref_b)); @@ -83,7 +83,7 @@ trait ValueTrait { fn get_value(&self) -> Vc; } -#[turbo_tasks::value(transparent, cell = "shared")] +#[turbo_tasks::value(transparent, cell = "compare")] struct SharedValue(usize); #[turbo_tasks::value(transparent, cell = "new")] diff --git a/turbopack/crates/turbo-tasks-fetch/src/error.rs b/turbopack/crates/turbo-tasks-fetch/src/error.rs index eee81e1a352e6..f1b75b80ca3bb 100644 --- a/turbopack/crates/turbo-tasks-fetch/src/error.rs +++ b/turbopack/crates/turbo-tasks-fetch/src/error.rs @@ -130,7 +130,7 @@ impl Issue for FetchIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Load.into() + IssueStage::Load.cell() } #[turbo_tasks::function] diff --git a/turbopack/crates/turbo-tasks-fs/src/lib.rs b/turbopack/crates/turbo-tasks-fs/src/lib.rs index 04b6d10b8fe48..92a33603f4ea5 100644 --- a/turbopack/crates/turbo-tasks-fs/src/lib.rs +++ b/turbopack/crates/turbo-tasks-fs/src/lib.rs @@ -2201,25 +2201,25 @@ impl FileContent { #[turbo_tasks::function] pub fn parse_json(&self) -> Result> { - Ok(self.parse_json_ref().into()) + Ok(self.parse_json_ref().cell()) } #[turbo_tasks::function] pub async fn parse_json_with_comments(self: Vc) -> Result> { let this = self.await?; - Ok(this.parse_json_with_comments_ref().into()) + Ok(this.parse_json_with_comments_ref().cell()) } #[turbo_tasks::function] pub async fn parse_json5(self: Vc) -> Result> { let this = self.await?; - Ok(this.parse_json5_ref().into()) + Ok(this.parse_json5_ref().cell()) } #[turbo_tasks::function] pub async fn lines(self: Vc) -> Result> { let this = self.await?; - Ok(this.lines_ref().into()) + Ok(this.lines_ref().cell()) } #[turbo_tasks::function] @@ -2464,7 +2464,7 @@ impl FileSystem for NullFileSystem { #[turbo_tasks::function] fn read_link(&self, _fs_path: FileSystemPath) -> Vc { - LinkContent::NotFound.into() + LinkContent::NotFound.cell() } #[turbo_tasks::function] diff --git a/turbopack/crates/turbo-tasks-macros/src/generic_type_macro.rs b/turbopack/crates/turbo-tasks-macros/src/generic_type_macro.rs index b8bedfe6821d3..66b8d3fa29051 100644 --- a/turbopack/crates/turbo-tasks-macros/src/generic_type_macro.rs +++ b/turbopack/crates/turbo-tasks-macros/src/generic_type_macro.rs @@ -73,7 +73,7 @@ pub fn generic_type(input: TokenStream) -> TokenStream { turbo_tasks::VcTransparentRead<#ty, #ty, #repr> }, quote! { - turbo_tasks::VcCellSharedMode<#ty> + turbo_tasks::VcCellCompareMode<#ty> }, quote! { turbo_tasks::ValueType::new_with_any_serialization::<#repr>(#name) diff --git a/turbopack/crates/turbo-tasks-macros/src/primitive_macro.rs b/turbopack/crates/turbo-tasks-macros/src/primitive_macro.rs index 8a39cc4b70713..acab17e4abd06 100644 --- a/turbopack/crates/turbo-tasks-macros/src/primitive_macro.rs +++ b/turbopack/crates/turbo-tasks-macros/src/primitive_macro.rs @@ -41,7 +41,7 @@ pub fn primitive(input: TokenStream) -> TokenStream { turbo_tasks::VcTransparentRead<#ty, #ty, #ty> }, quote! { - turbo_tasks::VcCellSharedMode<#ty> + turbo_tasks::VcCellCompareMode<#ty> }, quote! { turbo_tasks::ValueType::new_with_any_serialization::<#ty>(#name) diff --git a/turbopack/crates/turbo-tasks-macros/src/value_macro.rs b/turbopack/crates/turbo-tasks-macros/src/value_macro.rs index 7fb870d078f34..eee8ee660258e 100644 --- a/turbopack/crates/turbo-tasks-macros/src/value_macro.rs +++ b/turbopack/crates/turbo-tasks-macros/src/value_macro.rs @@ -15,38 +15,9 @@ use turbo_tasks_macros_shared::get_value_type_ident; use crate::global_name::global_name; -enum IntoMode { - None, - New, - Shared, -} - -impl Parse for IntoMode { - fn parse(input: ParseStream) -> Result { - let ident = input.parse::()?; - Self::try_from(ident) - } -} - -impl TryFrom for IntoMode { - type Error = Error; - - fn try_from(lit: LitStr) -> std::result::Result { - match lit.value().as_str() { - "none" => Ok(IntoMode::None), - "new" => Ok(IntoMode::New), - "shared" => Ok(IntoMode::Shared), - _ => Err(Error::new_spanned( - &lit, - "expected \"none\", \"new\" or \"shared\"", - )), - } - } -} - enum CellMode { + Compare, New, - Shared, } impl Parse for CellMode { @@ -61,9 +32,9 @@ impl TryFrom for CellMode { fn try_from(lit: LitStr) -> std::result::Result { match lit.value().as_str() { + "compare" => Ok(CellMode::Compare), "new" => Ok(CellMode::New), - "shared" => Ok(CellMode::Shared), - _ => Err(Error::new_spanned(&lit, "expected \"new\" or \"shared\"")), + _ => Err(Error::new_spanned(&lit, "expected \"new\" or \"compare\"")), } } } @@ -99,7 +70,7 @@ impl TryFrom for SerializationMode { struct ValueArguments { serialization_mode: SerializationMode, - into_mode: IntoMode, + shared: bool, cell_mode: CellMode, manual_eq: bool, transparent: bool, @@ -111,8 +82,8 @@ impl Parse for ValueArguments { fn parse(input: ParseStream) -> Result { let mut result = ValueArguments { serialization_mode: SerializationMode::Auto, - into_mode: IntoMode::None, - cell_mode: CellMode::Shared, + shared: false, + cell_mode: CellMode::Compare, manual_eq: false, transparent: false, operation: None, @@ -128,20 +99,7 @@ impl Parse for ValueArguments { meta, ) { ("shared", Meta::Path(_)) => { - result.into_mode = IntoMode::Shared; - result.cell_mode = CellMode::Shared; - } - ( - "into", - Meta::NameValue(MetaNameValue { - value: - Expr::Lit(ExprLit { - lit: Lit::Str(str), .. - }), - .. - }), - ) => { - result.into_mode = IntoMode::try_from(str)?; + result.shared = true; } ( "serialization", @@ -210,7 +168,7 @@ pub fn value(args: TokenStream, input: TokenStream) -> TokenStream { let item = parse_macro_input!(input as Item); let ValueArguments { serialization_mode, - into_mode, + shared, cell_mode, manual_eq, transparent, @@ -287,15 +245,6 @@ pub fn value(args: TokenStream, input: TokenStream) -> TokenStream { } }; - let cell_mode = match cell_mode { - CellMode::New => quote! { - turbo_tasks::VcCellNewMode<#ident> - }, - CellMode::Shared => quote! { - turbo_tasks::VcCellSharedMode<#ident> - }, - }; - let (cell_prefix, cell_access_content, read) = if let Some(inner_type) = &inner_type { ( quote! { pub }, @@ -308,7 +257,7 @@ pub fn value(args: TokenStream, input: TokenStream) -> TokenStream { ) } else { ( - if let IntoMode::New | IntoMode::Shared = into_mode { + if shared { quote! { pub } } else { quote! {} @@ -320,6 +269,15 @@ pub fn value(args: TokenStream, input: TokenStream) -> TokenStream { ) }; + let cell_mode = match cell_mode { + CellMode::New => quote! { + turbo_tasks::VcCellNewMode<#ident> + }, + CellMode::Compare => quote! { + turbo_tasks::VcCellCompareMode<#ident> + }, + }; + let cell_struct = quote! { /// Places a value in a cell of the current task. /// @@ -339,18 +297,6 @@ pub fn value(args: TokenStream, input: TokenStream) -> TokenStream { } }; - let into = if let IntoMode::New | IntoMode::Shared = into_mode { - quote! { - impl ::std::convert::From<#ident> for turbo_tasks::Vc<#ident> { - fn from(value: #ident) -> Self { - value.cell() - } - } - } - } else { - quote! {} - }; - match serialization_mode { SerializationMode::Auto => { struct_attributes.push(quote! { @@ -445,8 +391,6 @@ pub fn value(args: TokenStream, input: TokenStream) -> TokenStream { #cell_struct } - #into - #value_type_and_register_code #value_debug_impl diff --git a/turbopack/crates/turbo-tasks/src/lib.rs b/turbopack/crates/turbo-tasks/src/lib.rs index eeba7dbb7f004..8eb3400a60142 100644 --- a/turbopack/crates/turbo-tasks/src/lib.rs +++ b/turbopack/crates/turbo-tasks/src/lib.rs @@ -131,8 +131,9 @@ pub use value::{TransientInstance, TransientValue}; pub use value_type::{TraitMethod, TraitType, ValueType}; pub use vc::{ Dynamic, NonLocalValue, OperationValue, OperationVc, OptionVcExt, ReadVcFuture, ResolvedVc, - Upcast, UpcastStrict, ValueDefault, Vc, VcCast, VcCellNewMode, VcCellSharedMode, VcDefaultRead, - VcRead, VcTransparentRead, VcValueTrait, VcValueTraitCast, VcValueType, VcValueTypeCast, + Upcast, UpcastStrict, ValueDefault, Vc, VcCast, VcCellCompareMode, VcCellNewMode, + VcDefaultRead, VcRead, VcTransparentRead, VcValueTrait, VcValueTraitCast, VcValueType, + VcValueTypeCast, }; pub type SliceMap = Box<[(K, V)]>; @@ -189,7 +190,7 @@ macro_rules! fxindexset { /// ``` /// # #![feature(arbitrary_self_types)] // # #![feature(arbitrary_self_types_pointers)] -/// #[turbo_tasks::value(transparent, into = "shared")] +/// #[turbo_tasks::value(transparent, shared)] /// struct Foo(Vec); /// ``` /// @@ -199,7 +200,7 @@ macro_rules! fxindexset { /// by setting the [`VcValueType::CellMode`] associated type. /// /// - **`"new"`:** Always overrides the value in the cell, invalidating all dependent tasks. -/// - **`"shared"` *(default)*:** Compares with the existing value in the cell, before overriding it. +/// - **`"compare"` *(default)*:** Compares with the existing value in the cell, before overriding it. /// Requires the value to implement [`Eq`]. /// /// Avoiding unnecessary invalidation is important to reduce downstream recomputation of tasks that @@ -211,31 +212,11 @@ macro_rules! fxindexset { /// /// ## `eq = "..."` /// -/// By default, we `#[derive(PartialEq, Eq)]`. [`Eq`] is required by `cell = "shared"`. This +/// By default, we `#[derive(PartialEq, Eq)]`. [`Eq`] is required by `cell = "compare"`. This /// argument allows overriding that default implementation behavior. /// /// - **`"manual"`:** Prevents deriving [`Eq`] and [`PartialEq`] so you can do it manually. /// -/// ## `into = "..."` -/// -/// This macro always implements a `.cell()` method on your type with the signature: -/// -/// ```ignore -/// /// Wraps the value in a cell. -/// fn cell(self) -> Vc; -/// ``` -/// -/// This argument controls the visibility of the `.cell()` method, as well as whether a -/// [`From for Vc`][From] implementation is generated. -/// -/// - **`"new"` or `"shared"`:** Exposes both `.cell()` and [`From`]/[`Into`] implementations. Both -/// of these values (`"new"` or `"shared"`) do the same thing (for legacy reasons). -/// - **`"none"` *(default)*:** Makes `.cell()` private and prevents implementing [`From`]/[`Into`]. -/// -/// You should use the default value of `"none"` when providing your own public constructor methods. -/// -/// The naming of this field and it's values are due to legacy reasons. -/// /// ## `serialization = "..."` /// /// Affects serialization via [`serde::Serialize`] and [`serde::Deserialize`]. Serialization is @@ -248,8 +229,7 @@ macro_rules! fxindexset { /// /// ## `shared` /// -/// Sets both `cell = "shared"` *(already the default)* and `into = "shared"`, exposing the -/// `.cell()` method and adding a [`From`]/[`Into`] implementation. +/// Makes the `cell()` method public so everyone can use it. /// /// ## `transparent` /// diff --git a/turbopack/crates/turbo-tasks/src/vc/cell_mode.rs b/turbopack/crates/turbo-tasks/src/vc/cell_mode.rs index 4e1e602dd106e..6aabd4c956d03 100644 --- a/turbopack/crates/turbo-tasks/src/vc/cell_mode.rs +++ b/turbopack/crates/turbo-tasks/src/vc/cell_mode.rs @@ -54,11 +54,11 @@ where /// Mode that compares the cell's content with the new value and only updates /// if the new value is different. -pub struct VcCellSharedMode { +pub struct VcCellCompareMode { _phantom: PhantomData, } -impl VcCellMode for VcCellSharedMode +impl VcCellMode for VcCellCompareMode where T: VcValueType + PartialEq, { diff --git a/turbopack/crates/turbo-tasks/src/vc/mod.rs b/turbopack/crates/turbo-tasks/src/vc/mod.rs index 07b2e8531cfb3..62c2b31ba2cd7 100644 --- a/turbopack/crates/turbo-tasks/src/vc/mod.rs +++ b/turbopack/crates/turbo-tasks/src/vc/mod.rs @@ -22,7 +22,7 @@ use shrink_to_fit::ShrinkToFit; pub use self::{ cast::{VcCast, VcValueTraitCast, VcValueTypeCast}, - cell_mode::{VcCellMode, VcCellNewMode, VcCellSharedMode}, + cell_mode::{VcCellCompareMode, VcCellMode, VcCellNewMode}, default::ValueDefault, local::NonLocalValue, operation::{OperationValue, OperationVc}, diff --git a/turbopack/crates/turbopack-browser/src/ecmascript/list/update.rs b/turbopack/crates/turbopack-browser/src/ecmascript/list/update.rs index 26d617c4175fa..b3df2be9b6ab8 100644 --- a/turbopack/crates/turbopack-browser/src/ecmascript/list/update.rs +++ b/turbopack/crates/turbopack-browser/src/ecmascript/list/update.rs @@ -171,5 +171,5 @@ pub(super) async fn update_chunk_list( }) }; - Ok(update.into()) + Ok(update.cell()) } diff --git a/turbopack/crates/turbopack-core/src/module_graph/mod.rs b/turbopack/crates/turbopack-core/src/module_graph/mod.rs index c6ea198edb3d8..f9602eb30bfb5 100644 --- a/turbopack/crates/turbopack-core/src/module_graph/mod.rs +++ b/turbopack/crates/turbopack-core/src/module_graph/mod.rs @@ -176,7 +176,7 @@ impl GraphEntries { } } -#[turbo_tasks::value(cell = "new", eq = "manual", into = "new")] +#[turbo_tasks::value(cell = "new", eq = "manual")] #[derive(Clone, Default)] pub struct SingleModuleGraph { pub graph: TracedDiGraph, diff --git a/turbopack/crates/turbopack-core/src/module_graph/module_batches.rs b/turbopack/crates/turbopack-core/src/module_graph/module_batches.rs index f9449265d1f23..f749675b0461e 100644 --- a/turbopack/crates/turbopack-core/src/module_graph/module_batches.rs +++ b/turbopack/crates/turbopack-core/src/module_graph/module_batches.rs @@ -50,7 +50,7 @@ pub struct ModuleBatchesGraphEdge { type EntriesList = FxIndexSet>>; -#[turbo_tasks::value(cell = "new", eq = "manual", into = "new")] +#[turbo_tasks::value(cell = "new", eq = "manual")] pub struct ModuleBatchesGraph { graph: TracedDiGraph, diff --git a/turbopack/crates/turbopack-core/src/resolve/mod.rs b/turbopack/crates/turbopack-core/src/resolve/mod.rs index 7b43d4687900f..fac24993b5744 100644 --- a/turbopack/crates/turbopack-core/src/resolve/mod.rs +++ b/turbopack/crates/turbopack-core/src/resolve/mod.rs @@ -906,7 +906,7 @@ impl ResolveResult { primary: new_primary, affecting_sources: self.affecting_sources.clone(), } - .into()) + .cell()) } /// Returns a new [ResolveResult] where all [RequestKey]s are updated. The prefix is removed @@ -932,7 +932,7 @@ impl ResolveResult { primary: new_primary, affecting_sources: self.affecting_sources.clone(), } - .into()) + .cell()) } /// Returns a new [ResolveResult] where all [RequestKey]s are updated. All keys matching @@ -969,7 +969,7 @@ impl ResolveResult { primary: new_primary, affecting_sources: self.affecting_sources.clone(), } - .into()) + .cell()) } /// Returns a new [ResolveResult] where all [RequestKey]s are set to the @@ -993,7 +993,7 @@ impl ResolveResult { primary: new_primary, affecting_sources: self.affecting_sources.clone(), } - .into() + .cell() } } @@ -1221,16 +1221,16 @@ pub async fn find_context_file_or_package_key( &*read_package_json(Vc::upcast(FileSource::new(package_json_path.clone()))).await? && json.get(&*package_key).is_some() { - return Ok(FindContextFileResult::Found(package_json_path, Vec::new()).into()); + return Ok(FindContextFileResult::Found(package_json_path, Vec::new()).cell()); } for name in &*names.await? { let fs_path = lookup_path.join(name)?; if let Some(fs_path) = exists(&fs_path, None).await? { - return Ok(FindContextFileResult::Found(fs_path, Vec::new()).into()); + return Ok(FindContextFileResult::Found(fs_path, Vec::new()).cell()); } } if lookup_path.is_root() { - return Ok(FindContextFileResult::NotFound(Vec::new()).into()); + return Ok(FindContextFileResult::NotFound(Vec::new()).cell()); } Ok(find_context_file(lookup_path.parent(), names, false)) diff --git a/turbopack/crates/turbopack-core/src/resolve/options.rs b/turbopack/crates/turbopack-core/src/resolve/options.rs index 68520241d5232..cfdd3a6c006bd 100644 --- a/turbopack/crates/turbopack-core/src/resolve/options.rs +++ b/turbopack/crates/turbopack-core/src/resolve/options.rs @@ -584,10 +584,10 @@ impl ResolvedMap { request, ) .await? - .into()); + .cell()); } } - Ok(ImportMapResult::NoEntry.into()) + Ok(ImportMapResult::NoEntry.cell()) } } @@ -647,7 +647,7 @@ impl ResolveOptions { .to_resolved() .await?, ); - Ok(resolve_options.into()) + Ok(resolve_options.cell()) } /// Returns a new [Vc] with its fallback import map extended @@ -669,7 +669,7 @@ impl ResolveOptions { } else { Some(extended_import_map) }; - Ok(resolve_options.into()) + Ok(resolve_options.cell()) } /// Overrides the extensions used for resolving @@ -677,7 +677,7 @@ impl ResolveOptions { pub async fn with_extensions(self: Vc, extensions: Vec) -> Result> { let mut resolve_options = self.owned().await?; resolve_options.extensions = extensions; - Ok(resolve_options.into()) + Ok(resolve_options.cell()) } /// Overrides the fully_specified flag for resolving @@ -708,7 +708,7 @@ pub async fn resolve_modules_options( modules: options.modules.clone(), extensions: options.extensions.clone(), } - .into()) + .cell()) } #[turbo_tasks::value_trait] diff --git a/turbopack/crates/turbopack-core/src/version.rs b/turbopack/crates/turbopack-core/src/version.rs index ac6983ac6db4e..460bf220435f6 100644 --- a/turbopack/crates/turbopack-core/src/version.rs +++ b/turbopack/crates/turbopack-core/src/version.rs @@ -39,7 +39,7 @@ pub trait VersionedContent { // Fast path: versions are the same. if TraitRef::ptr_eq(&from_ref, &to_ref) { - return Ok(Update::None.into()); + return Ok(Update::None.cell()); } // The fast path might not always work since `self` might have been converted @@ -51,9 +51,9 @@ pub trait VersionedContent { let from_id = from_id.await?; let to_id = to_id.await?; Ok(if *from_id == *to_id { - Update::None.into() + Update::None.cell() } else { - Update::Total(TotalUpdate { to: to_ref }).into() + Update::Total(TotalUpdate { to: to_ref }).cell() }) } } diff --git a/turbopack/crates/turbopack-css/src/asset.rs b/turbopack/crates/turbopack-css/src/asset.rs index 48aeeeb691507..c90f061c8de46 100644 --- a/turbopack/crates/turbopack-css/src/asset.rs +++ b/turbopack/crates/turbopack-css/src/asset.rs @@ -339,7 +339,7 @@ impl CssChunkItem for CssModuleChunkItem { import_context: self.module.await?.import_context, source_map: source_map.owned().await?, } - .into()) + .cell()) } else { Ok(CssChunkItemContent { inner_code: format!( @@ -351,7 +351,7 @@ impl CssChunkItem for CssModuleChunkItem { import_context: None, source_map: None, } - .into()) + .cell()) } } } diff --git a/turbopack/crates/turbopack-css/src/code_gen.rs b/turbopack/crates/turbopack-css/src/code_gen.rs index f92ff7b329eb4..284811bdb2f77 100644 --- a/turbopack/crates/turbopack-css/src/code_gen.rs +++ b/turbopack/crates/turbopack-css/src/code_gen.rs @@ -5,13 +5,7 @@ use crate::chunk::CssImport; /// impl of code generation inferred from a ModuleReference. /// This is rust only and can't be implemented by non-rust plugins. -#[turbo_tasks::value( - shared, - serialization = "none", - eq = "manual", - into = "new", - cell = "new" -)] +#[turbo_tasks::value(shared, serialization = "none", eq = "manual", cell = "new")] pub struct CodeGeneration { #[turbo_tasks(debug_ignore, trace_ignore)] pub imports: Vec, diff --git a/turbopack/crates/turbopack-css/src/process.rs b/turbopack/crates/turbopack-css/src/process.rs index 65d6e7d84df96..fa9e905be0611 100644 --- a/turbopack/crates/turbopack-css/src/process.rs +++ b/turbopack/crates/turbopack-css/src/process.rs @@ -285,8 +285,8 @@ pub async fn finalize_css( code, .. } => (stylesheet.to_static(options.clone()), *code), - ParseCssResult::Unparsable => return Ok(FinalCssResult::Unparsable.into()), - ParseCssResult::NotFound => return Ok(FinalCssResult::NotFound.into()), + ParseCssResult::Unparsable => return Ok(FinalCssResult::Unparsable.cell()), + ParseCssResult::NotFound => return Ok(FinalCssResult::NotFound.cell()), }; let url_references = *url_references; @@ -330,10 +330,10 @@ pub async fn finalize_css( exports: result.exports, source_map: ResolvedVc::cell(srcmap), } - .into()) + .cell()) } - CssWithPlaceholderResult::Unparsable => Ok(FinalCssResult::Unparsable.into()), - CssWithPlaceholderResult::NotFound => Ok(FinalCssResult::NotFound.into()), + CssWithPlaceholderResult::Unparsable => Ok(FinalCssResult::Unparsable.cell()), + CssWithPlaceholderResult::NotFound => Ok(FinalCssResult::NotFound.cell()), } } diff --git a/turbopack/crates/turbopack-css/src/references/import.rs b/turbopack/crates/turbopack-css/src/references/import.rs index 205e1d4f018e2..f2433be9fbd45 100644 --- a/turbopack/crates/turbopack-css/src/references/import.rs +++ b/turbopack/crates/turbopack-css/src/references/import.rs @@ -20,7 +20,7 @@ use crate::{ references::css_resolve, }; -#[turbo_tasks::value(into = "new", eq = "manual", serialization = "none")] +#[turbo_tasks::value(eq = "manual", serialization = "none", shared)] pub enum ImportAttributes { LightningCss { #[turbo_tasks(trace_ignore)] @@ -174,7 +174,7 @@ impl CodeGenerateable for ImportAssetReference { ))) } - Ok(CodeGeneration { imports }.into()) + Ok(CodeGeneration { imports }.cell()) } } diff --git a/turbopack/crates/turbopack-css/src/references/mod.rs b/turbopack/crates/turbopack-css/src/references/mod.rs index bb0d84cb88866..50b7b83027a23 100644 --- a/turbopack/crates/turbopack-css/src/references/mod.rs +++ b/turbopack/crates/turbopack-css/src/references/mod.rs @@ -103,7 +103,7 @@ impl Visitor<'_> for ModuleReferencesVisitor<'_> { self.references.push(Vc::upcast(ImportAssetReference::new( *self.origin, Request::parse(RcStr::from(src).into()), - ImportAttributes::new_from_lightningcss(&i.clone().into_owned()).into(), + ImportAttributes::new_from_lightningcss(&i.clone().into_owned()).cell(), self.import_context.map(|ctx| *ctx), IssueSource::from_line_col( self.source, diff --git a/turbopack/crates/turbopack-css/src/references/url.rs b/turbopack/crates/turbopack-css/src/references/url.rs index 229b801d79edb..a27b574435f18 100644 --- a/turbopack/crates/turbopack-css/src/references/url.rs +++ b/turbopack/crates/turbopack-css/src/references/url.rs @@ -20,7 +20,7 @@ use turbopack_core::{ use crate::{StyleSheetLike, embed::CssEmbed}; -#[turbo_tasks::value(into = "new")] +#[turbo_tasks::value] pub enum ReferencedAsset { Some(ResolvedVc>), None, @@ -63,7 +63,7 @@ impl UrlAssetReference { .to_resolved() .await?, ) - .into()); + .cell()); } Ok(ReferencedAsset::cell(ReferencedAsset::None)) } diff --git a/turbopack/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs b/turbopack/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs index 8153d7991ad69..9b05df44c86c7 100644 --- a/turbopack/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs +++ b/turbopack/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs @@ -13,7 +13,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(serialization = "none", eq = "manual", into = "new", cell = "new")] +#[turbo_tasks::value(serialization = "none", eq = "manual", cell = "new")] pub struct SwcPluginModule( #[turbo_tasks(trace_ignore, debug_ignore)] #[cfg(feature = "swc_ecma_transform_plugin")] diff --git a/turbopack/crates/turbopack-ecmascript/src/async_chunk/chunk_item.rs b/turbopack/crates/turbopack-ecmascript/src/async_chunk/chunk_item.rs index da54f0b82302e..2e8f07604b03f 100644 --- a/turbopack/crates/turbopack-ecmascript/src/async_chunk/chunk_item.rs +++ b/turbopack/crates/turbopack-ecmascript/src/async_chunk/chunk_item.rs @@ -146,7 +146,7 @@ impl EcmascriptChunkItem for AsyncLoaderChunkItem { inner_code: code.into(), ..Default::default() } - .into()) + .cell()) } } diff --git a/turbopack/crates/turbopack-ecmascript/src/chunk/placeable.rs b/turbopack/crates/turbopack-ecmascript/src/chunk/placeable.rs index 63e6ce6edb4e5..8d9d3853a1fec 100644 --- a/turbopack/crates/turbopack-ecmascript/src/chunk/placeable.rs +++ b/turbopack/crates/turbopack-ecmascript/src/chunk/placeable.rs @@ -161,7 +161,7 @@ struct SideEffectsInPackageJsonIssue { impl Issue for SideEffectsInPackageJsonIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Parse.into() + IssueStage::Parse.cell() } fn severity(&self) -> IssueSeverity { diff --git a/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs b/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs index 18b1c9b9c347a..b1dd79024560b 100644 --- a/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs +++ b/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs @@ -142,7 +142,7 @@ var decode = Uint8Array.fromBase64 || function Uint8Array_fromBase64(base64) { inner_code: inner_code.build(), ..Default::default() } - .into()) + .cell()) } FileContent::NotFound => { bail!("File not found: {}", self.module.ident().to_string().await?); diff --git a/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_item.rs b/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_item.rs index 1452f1c2c04db..4fd913eeba33e 100644 --- a/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_item.rs +++ b/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_item.rs @@ -60,7 +60,7 @@ impl EcmascriptChunkItem for ManifestChunkItem { inner_code: code.into(), ..Default::default() } - .into()) + .cell()) } } diff --git a/turbopack/crates/turbopack-ecmascript/src/manifest/loader_item.rs b/turbopack/crates/turbopack-ecmascript/src/manifest/loader_item.rs index 1911bffb88c2a..a9ac5e87cbbd4 100644 --- a/turbopack/crates/turbopack-ecmascript/src/manifest/loader_item.rs +++ b/turbopack/crates/turbopack-ecmascript/src/manifest/loader_item.rs @@ -177,6 +177,6 @@ impl EcmascriptChunkItem for ManifestLoaderChunkItem { inner_code: code.into(), ..Default::default() } - .into()) + .cell()) } } diff --git a/turbopack/crates/turbopack-ecmascript/src/references/esm/base.rs b/turbopack/crates/turbopack-ecmascript/src/references/esm/base.rs index 7663bd263c5ad..00c9102bf36bb 100644 --- a/turbopack/crates/turbopack-ecmascript/src/references/esm/base.rs +++ b/turbopack/crates/turbopack-ecmascript/src/references/esm/base.rs @@ -781,7 +781,7 @@ impl Issue for InvalidExport { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Bindings.into() + IssueStage::Bindings.cell() } #[turbo_tasks::function] @@ -876,7 +876,7 @@ impl Issue for CircularReExport { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Bindings.into() + IssueStage::Bindings.cell() } #[turbo_tasks::function] diff --git a/turbopack/crates/turbopack-ecmascript/src/references/mod.rs b/turbopack/crates/turbopack-ecmascript/src/references/mod.rs index 13395b5f56a91..b4a1fac7377f8 100644 --- a/turbopack/crates/turbopack-ecmascript/src/references/mod.rs +++ b/turbopack/crates/turbopack-ecmascript/src/references/mod.rs @@ -3731,7 +3731,7 @@ async fn resolve_as_webpack_runtime( if let Some(source) = *resolved.first_source().await? { Ok(webpack_runtime(*source, transforms)) } else { - Ok(WebpackRuntime::None.into()) + Ok(WebpackRuntime::None.cell()) } } diff --git a/turbopack/crates/turbopack-ecmascript/src/references/type_issue.rs b/turbopack/crates/turbopack-ecmascript/src/references/type_issue.rs index 64c0318de5d8a..618e64b466db8 100644 --- a/turbopack/crates/turbopack-ecmascript/src/references/type_issue.rs +++ b/turbopack/crates/turbopack-ecmascript/src/references/type_issue.rs @@ -83,7 +83,7 @@ impl Issue for SpecifiedModuleTypeIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Analysis.into() + IssueStage::Analysis.cell() } #[turbo_tasks::function] diff --git a/turbopack/crates/turbopack-ecmascript/src/transform/mod.rs b/turbopack/crates/turbopack-ecmascript/src/transform/mod.rs index 00ea8570a7429..ed675561affb4 100644 --- a/turbopack/crates/turbopack-ecmascript/src/transform/mod.rs +++ b/turbopack/crates/turbopack-ecmascript/src/transform/mod.rs @@ -69,13 +69,7 @@ pub trait CustomTransformer: Debug { /// A wrapper around a TransformPlugin instance, allowing it to operate with /// the turbo_task caching requirements. -#[turbo_tasks::value( - transparent, - serialization = "none", - eq = "manual", - into = "new", - cell = "new" -)] +#[turbo_tasks::value(transparent, serialization = "none", eq = "manual", cell = "new")] #[derive(Debug)] pub struct TransformPlugin(#[turbo_tasks(trace_ignore)] Box); diff --git a/turbopack/crates/turbopack-ecmascript/src/webpack/parse.rs b/turbopack/crates/turbopack-ecmascript/src/webpack/parse.rs index 69c46554b11de..0aa14254b770f 100644 --- a/turbopack/crates/turbopack-ecmascript/src/webpack/parse.rs +++ b/turbopack/crates/turbopack-ecmascript/src/webpack/parse.rs @@ -225,11 +225,11 @@ pub async fn webpack_runtime( chunk_request_expr: value, context_path: source.ident().path().await?.parent(), } - .into()); + .cell()); } } } ParseResult::Unparsable { .. } | ParseResult::NotFound => {} } - Ok(WebpackRuntime::None.into()) + Ok(WebpackRuntime::None.cell()) } diff --git a/turbopack/crates/turbopack-ecmascript/src/worker_chunk/chunk_item.rs b/turbopack/crates/turbopack-ecmascript/src/worker_chunk/chunk_item.rs index 919e1e336e46d..7f5cbe7107e1d 100644 --- a/turbopack/crates/turbopack-ecmascript/src/worker_chunk/chunk_item.rs +++ b/turbopack/crates/turbopack-ecmascript/src/worker_chunk/chunk_item.rs @@ -76,7 +76,7 @@ impl EcmascriptChunkItem for WorkerLoaderChunkItem { inner_code: code.into(), ..Default::default() } - .into()) + .cell()) } } diff --git a/turbopack/crates/turbopack-env/src/issue.rs b/turbopack/crates/turbopack-env/src/issue.rs index f895c713a3168..bf428519a04c0 100644 --- a/turbopack/crates/turbopack-env/src/issue.rs +++ b/turbopack/crates/turbopack-env/src/issue.rs @@ -19,7 +19,7 @@ impl Issue for ProcessEnvIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Load.into() + IssueStage::Load.cell() } #[turbo_tasks::function] diff --git a/turbopack/crates/turbopack-json/src/lib.rs b/turbopack/crates/turbopack-json/src/lib.rs index c0d2f635868d4..259473f3facb8 100644 --- a/turbopack/crates/turbopack-json/src/lib.rs +++ b/turbopack/crates/turbopack-json/src/lib.rs @@ -168,7 +168,7 @@ impl EcmascriptChunkItem for JsonChunkItem { inner_code: code.into_source_code(), ..Default::default() } - .into()) + .cell()) } FileJsonContent::Unparsable(e) => { let mut message = "Unable to make a module from invalid JSON: ".to_string(); diff --git a/turbopack/crates/turbopack-node/src/evaluate.rs b/turbopack/crates/turbopack-node/src/evaluate.rs index f1493dca007c3..f9a2537d0985f 100644 --- a/turbopack/crates/turbopack-node/src/evaluate.rs +++ b/turbopack/crates/turbopack-node/src/evaluate.rs @@ -745,7 +745,7 @@ impl Issue for EvaluationIssue { #[turbo_tasks::function] fn stage(&self) -> Vc { - IssueStage::Transform.into() + IssueStage::Transform.cell() } #[turbo_tasks::function] diff --git a/turbopack/crates/turbopack-node/src/pool.rs b/turbopack/crates/turbopack-node/src/pool.rs index 562173100f170..78fce6f7b58b9 100644 --- a/turbopack/crates/turbopack-node/src/pool.rs +++ b/turbopack/crates/turbopack-node/src/pool.rs @@ -725,7 +725,7 @@ static ACTIVE_POOLS: Lazy = Lazy::new(Default::default); /// /// The worker will *not* use the env of the parent process by default. All env /// vars need to be provided to make the execution as pure as possible. -#[turbo_tasks::value(into = "new", cell = "new", serialization = "none", eq = "manual")] +#[turbo_tasks::value(cell = "new", serialization = "none", eq = "manual", shared)] pub struct NodeJsPool { cwd: PathBuf, entrypoint: PathBuf, diff --git a/turbopack/crates/turbopack-resolve/src/ecmascript.rs b/turbopack/crates/turbopack-resolve/src/ecmascript.rs index 4d11c186896c3..7ea2bceae12b2 100644 --- a/turbopack/crates/turbopack-resolve/src/ecmascript.rs +++ b/turbopack/crates/turbopack-resolve/src/ecmascript.rs @@ -83,7 +83,7 @@ pub async fn apply_cjs_specific_options(options: Vc) -> Result] with its fallback import map @@ -133,7 +133,7 @@ impl ResolveOptionsContext { .to_resolved() .await?, ); - Ok(resolve_options_context.into()) + Ok(resolve_options_context.cell()) } } diff --git a/turbopack/crates/turbopack-resolve/src/typescript.rs b/turbopack/crates/turbopack-resolve/src/typescript.rs index 6022044865309..f034b2305faf6 100644 --- a/turbopack/crates/turbopack-resolve/src/typescript.rs +++ b/turbopack/crates/turbopack-resolve/src/typescript.rs @@ -529,7 +529,7 @@ async fn apply_typescript_types_options( for conditions in get_condition_maps(&mut resolve_options) { conditions.insert(rcstr!("types"), ConditionValue::Set); } - Ok(resolve_options.into()) + Ok(resolve_options.cell()) } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbopack-static/src/ecma.rs b/turbopack/crates/turbopack-static/src/ecma.rs index cf5530fdfacb8..09bb8541c1c19 100644 --- a/turbopack/crates/turbopack-static/src/ecma.rs +++ b/turbopack/crates/turbopack-static/src/ecma.rs @@ -93,7 +93,7 @@ impl ChunkableModule for StaticUrlJsModule { impl EcmascriptChunkPlaceable for StaticUrlJsModule { #[turbo_tasks::function] fn get_exports(&self) -> Vc { - EcmascriptExports::Value.into() + EcmascriptExports::Value.cell() } } @@ -152,6 +152,6 @@ impl EcmascriptChunkItem for StaticUrlJsChunkItem { .into(), ..Default::default() } - .into()) + .cell()) } } diff --git a/turbopack/crates/turbopack-tests/tests/execution.rs b/turbopack/crates/turbopack-tests/tests/execution.rs index 764c7f447261c..008bac4de88fb 100644 --- a/turbopack/crates/turbopack-tests/tests/execution.rs +++ b/turbopack/crates/turbopack-tests/tests/execution.rs @@ -417,7 +417,7 @@ async fn run_test_operation(prepared_test: ResolvedVc) -> Result Result> { analyze_mode: AnalyzeMode::CodeGenerationAndTracing, ..Default::default() } - .into(), + .cell(), ResolveOptionsContext { enable_typescript: true, enable_react: true, diff --git a/turbopack/crates/turbopack-tracing/benches/node_file_trace.rs b/turbopack/crates/turbopack-tracing/benches/node_file_trace.rs index 1ae10ce2ce0e2..46b17090630b7 100644 --- a/turbopack/crates/turbopack-tracing/benches/node_file_trace.rs +++ b/turbopack/crates/turbopack-tracing/benches/node_file_trace.rs @@ -80,7 +80,7 @@ fn bench_emit(b: &mut Bencher, bench_input: &BenchInput) { let input = input_fs.root().await?.join(&input)?; let input_dir = input.parent().parent(); - let output_fs: Vc = NullFileSystem.into(); + let output_fs: Vc = NullFileSystem.cell(); let output_dir = output_fs.root().owned().await?; let source = FileSource::new(input); diff --git a/turbopack/crates/turbopack-wasm/src/raw.rs b/turbopack/crates/turbopack-wasm/src/raw.rs index 093430c981972..4e3cc88da13e5 100644 --- a/turbopack/crates/turbopack-wasm/src/raw.rs +++ b/turbopack/crates/turbopack-wasm/src/raw.rs @@ -152,6 +152,6 @@ impl EcmascriptChunkItem for RawModuleChunkItem { .into(), ..Default::default() } - .into()) + .cell()) } } diff --git a/turbopack/crates/turbopack/src/graph/mod.rs b/turbopack/crates/turbopack/src/graph/mod.rs index 79b4c33a8ae67..373d224bed324 100644 --- a/turbopack/crates/turbopack/src/graph/mod.rs +++ b/turbopack/crates/turbopack/src/graph/mod.rs @@ -35,9 +35,9 @@ impl AggregatedGraph { #[turbo_tasks::function] pub async fn content(self: Vc) -> Result> { Ok(match *self.await? { - AggregatedGraph::Leaf(asset) => AggregatedGraphNodeContent::Asset(asset).into(), + AggregatedGraph::Leaf(asset) => AggregatedGraphNodeContent::Asset(asset).cell(), AggregatedGraph::Node { ref content, .. } => { - AggregatedGraphNodeContent::Children(content.clone()).into() + AggregatedGraphNodeContent::Children(content.clone()).cell() } }) } @@ -52,7 +52,7 @@ impl AggregatedGraph { refs.insert(AggregatedGraph::leaf(**reference).to_resolved().await?); } } - AggregatedGraphsSet { set: refs }.into() + AggregatedGraphsSet { set: refs }.cell() } AggregatedGraph::Node { references, .. } => { let mut set = FxHashSet::default(); @@ -64,7 +64,7 @@ impl AggregatedGraph { { set.insert(item.to_resolved().await?); } - AggregatedGraphsSet { set }.into() + AggregatedGraphsSet { set }.cell() } }) } @@ -72,9 +72,9 @@ impl AggregatedGraph { #[turbo_tasks::function] async fn cost(self: Vc) -> Result> { Ok(match *self.await? { - AggregatedGraph::Leaf(asset) => AggregationCost(asset.references().await?.len()).into(), + AggregatedGraph::Leaf(asset) => AggregationCost(asset.references().await?.len()).cell(), AggregatedGraph::Node { ref references, .. } => { - AggregationCost(references.len()).into() + AggregationCost(references.len()).cell() } }) } @@ -107,7 +107,7 @@ impl AggregatedGraph { outer, references, } - .into()) + .cell()) } } @@ -179,7 +179,7 @@ async fn aggregate_more(node: ResolvedVc) -> Result Date: Wed, 29 Oct 2025 17:31:45 +0100 Subject: [PATCH 2/2] fixup --- .../src/transform/swc_ecma_transform_plugins.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/turbopack/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs b/turbopack/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs index 9b05df44c86c7..9e106e6a67c00 100644 --- a/turbopack/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs +++ b/turbopack/crates/turbopack-ecmascript-plugins/src/transform/swc_ecma_transform_plugins.rs @@ -13,7 +13,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(serialization = "none", eq = "manual", cell = "new")] +#[turbo_tasks::value(serialization = "none", eq = "manual", cell = "new", shared)] pub struct SwcPluginModule( #[turbo_tasks(trace_ignore, debug_ignore)] #[cfg(feature = "swc_ecma_transform_plugin")]