Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions crates/next-api/src/project.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ use serde::{Deserialize, Serialize};
use tracing::{Instrument, field::Empty};
use turbo_rcstr::{RcStr, rcstr};
use turbo_tasks::{
Completion, Completions, FxIndexMap, IntoTraitRef, NonLocalValue, OperationValue, OperationVc,
ReadRef, ResolvedVc, State, TaskInput, TransientInstance, TryFlatJoinIterExt, Vc,
Completion, Completions, FxIndexMap, NonLocalValue, OperationValue, OperationVc, ReadRef,
ResolvedVc, State, TaskInput, TransientInstance, TryFlatJoinIterExt, Vc,
debug::ValueDebugFormat, fxindexmap, trace::TraceRawVcs,
};
use turbo_tasks_env::{EnvMap, ProcessEnv};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::{io::Write, iter::once};
use anyhow::{Context, Result, bail};
use indoc::writedoc;
use turbo_rcstr::{RcStr, rcstr};
use turbo_tasks::{IntoTraitRef, ResolvedVc, ValueToString, Vc};
use turbo_tasks::{ResolvedVc, ValueToString, Vc};
use turbo_tasks_fs::{File, FileContent};
use turbopack_core::{
asset::AssetContent,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use std::{collections::HashSet, mem::take, sync::Mutex};

use anyhow::Result;
use turbo_tasks::{
IntoTraitRef, Invalidator, TraitRef, Vc, get_invalidator,
Invalidator, TraitRef, Vc, get_invalidator,
unmark_top_level_task_may_leak_eventually_consistent_state, with_turbo_tasks,
};
use turbo_tasks_testing::{Registration, register, run_once};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@

use anyhow::Result;
use turbo_tasks::{
IntoTraitRef, State, TraitRef, Upcast, Vc,
unmark_top_level_task_may_leak_eventually_consistent_state,
State, TraitRef, Upcast, Vc, unmark_top_level_task_may_leak_eventually_consistent_state,
};
use turbo_tasks_testing::{Registration, register, run_once};

Expand Down
2 changes: 1 addition & 1 deletion turbopack/crates/turbo-tasks/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ pub use crate::{
task_input::{EitherTaskInput, TaskInput},
},
task_execution_reason::TaskExecutionReason,
trait_ref::{IntoTraitRef, TraitRef},
trait_ref::TraitRef,
value::{TransientInstance, TransientValue},
value_type::{TraitMethod, TraitType, ValueType},
vc::{
Expand Down
37 changes: 2 additions & 35 deletions turbopack/crates/turbo-tasks/src/trait_ref.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
use std::{fmt::Debug, future::Future, marker::PhantomData};

use anyhow::Result;
use std::{fmt::Debug, marker::PhantomData};

use crate::{
Vc, VcValueTrait,
registry::get_value_type,
task::shared_reference::TypedSharedReference,
vc::{ReadVcFuture, VcValueTraitCast, cast::VcCast},
Vc, VcValueTrait, registry::get_value_type, task::shared_reference::TypedSharedReference,
};

/// Similar to a [`ReadRef<T>`][crate::ReadRef], but contains a value trait object instead.
Expand Down Expand Up @@ -117,31 +112,3 @@ where
(value_type.raw_cell)(shared_reference).into()
}
}

/// A trait that allows a value trait vc to be converted into a trait reference.
///
/// The signature is similar to `IntoFuture`, but we don't want trait vcs to
/// have the same future-like semantics as value vcs when it comes to producing
/// refs. This behavior is rarely needed, so in most cases, `.await`ing a trait
/// vc is a mistake.
pub trait IntoTraitRef {
type ValueTrait: VcValueTrait + ?Sized;
type Future: Future<Output = Result<<VcValueTraitCast<Self::ValueTrait> as VcCast>::Output>>;

fn into_trait_ref(self) -> Self::Future;
}

impl<T> IntoTraitRef for Vc<T>
where
T: VcValueTrait + ?Sized,
{
type ValueTrait = T;

type Future = ReadVcFuture<T, VcValueTraitCast<T>>;

fn into_trait_ref(self) -> Self::Future {
self.node
.into_read_with_unknown_is_serializable_cell_content()
.into()
}
}
16 changes: 16 additions & 0 deletions turbopack/crates/turbo-tasks/src/vc/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,22 @@ where

impl<T> Unpin for Vc<T> where T: ?Sized {}

impl<T> Vc<T>
where
T: VcValueTrait + ?Sized,
{
/// Converts this trait vc into a trait reference.
///
/// The signature is similar to [`IntoFuture::into_future`], but we don't want trait vcs to
/// have the same future-like semantics as value vcs when it comes to producing refs. This
/// behavior is rarely needed, so in most cases, `.await`ing a trait vc is a mistake.
pub fn into_trait_ref(self) -> ReadVcFuture<T, VcValueTraitCast<T>> {
self.node
.into_read_with_unknown_is_serializable_cell_content()
.into()
}
}

impl<T> Default for Vc<T>
where
T: ValueDefault,
Expand Down
5 changes: 2 additions & 3 deletions turbopack/crates/turbo-tasks/src/vc/operation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@ use serde::{Deserialize, Serialize};
pub use turbo_tasks_macros::OperationValue;

use crate::{
CollectiblesSource, IntoTraitRef, RawVc, ReadVcFuture, ResolvedVc, TaskInput, UpcastStrict, Vc,
VcValueTrait, VcValueTraitCast, VcValueType, marker_trait::impl_auto_marker_trait,
trace::TraceRawVcs,
CollectiblesSource, RawVc, ReadVcFuture, ResolvedVc, TaskInput, UpcastStrict, Vc, VcValueTrait,
VcValueTraitCast, VcValueType, marker_trait::impl_auto_marker_trait, trace::TraceRawVcs,
};

/// A "subtype" (can be converted via [`.connect()`]) of [`Vc`] that
Expand Down
2 changes: 0 additions & 2 deletions turbopack/crates/turbo-tasks/src/vc/traits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,6 @@ pub unsafe trait VcValueType: ShrinkToFit + Sized + Send + Sync + 'static {
/// functions defined on the trait to be called.
///
/// ```ignore
/// use turbo_tasks::IntoTraitRef;
///
/// let trait_vc: Vc<Box<dyn MyTrait>> = ...;
/// let trait_ref: TraitRef<Box<dyn MyTrait>> = trait_vc.into_trait_ref().await?;
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ use either::Either;
use indoc::writedoc;
use serde::{Deserialize, Serialize};
use turbo_rcstr::RcStr;
use turbo_tasks::{
FxIndexMap, IntoTraitRef, NonLocalValue, ResolvedVc, TryJoinIterExt, Vc, trace::TraceRawVcs,
};
use turbo_tasks::{FxIndexMap, NonLocalValue, ResolvedVc, TryJoinIterExt, Vc, trace::TraceRawVcs};
use turbo_tasks_fs::{File, FileContent};
use turbopack_core::{
asset::{Asset, AssetContent},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::sync::Arc;

use anyhow::Result;
use serde::Serialize;
use turbo_tasks::{FxIndexMap, IntoTraitRef, ResolvedVc, TraitRef, Vc};
use turbo_tasks::{FxIndexMap, ResolvedVc, TraitRef, Vc};
use turbopack_core::version::{
MergeableVersionedContent, PartialUpdate, TotalUpdate, Update, Version, VersionedContent,
VersionedContentMerger,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::sync::Arc;

use anyhow::Result;
use serde::Serialize;
use turbo_tasks::{FxIndexMap, FxIndexSet, IntoTraitRef, ReadRef, ResolvedVc, TryJoinIterExt, Vc};
use turbo_tasks::{FxIndexMap, FxIndexSet, ReadRef, ResolvedVc, TryJoinIterExt, Vc};
use turbo_tasks_fs::rope::Rope;
use turbopack_core::{
chunk::{ChunkingContext, ModuleId},
Expand Down
6 changes: 3 additions & 3 deletions turbopack/crates/turbopack-core/src/issue/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ use serde::{Deserialize, Serialize};
use turbo_esregex::EsRegex;
use turbo_rcstr::RcStr;
use turbo_tasks::{
CollectiblesSource, IntoTraitRef, NonLocalValue, OperationVc, RawVc, ReadRef, ResolvedVc,
TaskInput, TransientValue, TryFlatJoinIterExt, TryJoinIterExt, Upcast, ValueDefault,
ValueToString, Vc, emit, trace::TraceRawVcs,
CollectiblesSource, NonLocalValue, OperationVc, RawVc, ReadRef, ResolvedVc, TaskInput,
TransientValue, TryFlatJoinIterExt, TryJoinIterExt, Upcast, ValueDefault, ValueToString, Vc,
emit, trace::TraceRawVcs,
};
use turbo_tasks_fs::{
FileContent, FileLine, FileLinesContent, FileSystem, FileSystemPath, glob::Glob,
Expand Down
2 changes: 1 addition & 1 deletion turbopack/crates/turbopack-core/src/resolve/error.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use anyhow::Result;
use turbo_rcstr::RcStr;
use turbo_tasks::{IntoTraitRef, PrettyPrintError, ResolvedVc, Vc};
use turbo_tasks::{PrettyPrintError, ResolvedVc, Vc};
use turbo_tasks_fs::FileSystemPath;

use crate::{
Expand Down
2 changes: 1 addition & 1 deletion turbopack/crates/turbopack-core/src/version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::sync::Arc;
use anyhow::{Context, Result, bail};
use turbo_rcstr::RcStr;
use turbo_tasks::{
IntoTraitRef, NonLocalValue, OperationValue, ReadRef, ResolvedVc, State, TraitRef, Vc,
NonLocalValue, OperationValue, ReadRef, ResolvedVc, State, TraitRef, Vc,
debug::ValueDebugFormat, trace::TraceRawVcs,
};
use turbo_tasks_hash::HashAlgorithm;
Expand Down
2 changes: 1 addition & 1 deletion turbopack/crates/turbopack-css/src/asset.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use anyhow::Result;
use turbo_rcstr::rcstr;
use turbo_tasks::{IntoTraitRef, ResolvedVc, TryJoinIterExt, Vc, turbofmt};
use turbo_tasks::{ResolvedVc, TryJoinIterExt, Vc, turbofmt};
use turbo_tasks_fs::{FileContent, FileSystemPath};
use turbopack_core::{
chunk::{ChunkItem, ChunkType, ChunkableModule, ChunkingContext, MinifyType},
Expand Down
2 changes: 1 addition & 1 deletion turbopack/crates/turbopack-css/src/module_asset.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use anyhow::{Context, Result};
use lightningcss::css_modules::CssModuleReference;
use swc_core::common::{BytePos, FileName, LineCol, SourceMap};
use turbo_rcstr::{RcStr, rcstr};
use turbo_tasks::{FxIndexMap, IntoTraitRef, ResolvedVc, Vc, turbofmt};
use turbo_tasks::{FxIndexMap, ResolvedVc, Vc, turbofmt};
use turbo_tasks_fs::{FileSystemPath, rope::Rope};
use turbopack_core::{
chunk::{AsyncModuleInfo, ChunkableModule, ChunkingContext, ModuleChunkItemIdExt},
Expand Down
3 changes: 1 addition & 2 deletions turbopack/crates/turbopack-dev-server/src/update/stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ use tokio_stream::wrappers::ReceiverStream;
use tracing::Instrument;
use turbo_rcstr::{RcStr, rcstr};
use turbo_tasks::{
IntoTraitRef, NonLocalValue, OperationVc, PrettyPrintError, ReadRef, ResolvedVc,
TransientInstance, Vc,
NonLocalValue, OperationVc, PrettyPrintError, ReadRef, ResolvedVc, TransientInstance, Vc,
trace::{TraceRawVcs, TraceRawVcsContext},
};
use turbo_tasks_fs::{FileSystem, FileSystemPath};
Expand Down
4 changes: 2 additions & 2 deletions turbopack/crates/turbopack-ecmascript/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ use swc_core::{
use tracing::{Instrument, Level, instrument};
use turbo_rcstr::{RcStr, rcstr};
use turbo_tasks::{
FxDashMap, FxIndexMap, IntoTraitRef, NonLocalValue, ReadRef, ResolvedVc, TaskInput,
TryJoinIterExt, Upcast, ValueToString, Vc, trace::TraceRawVcs, turbofmt,
FxDashMap, FxIndexMap, NonLocalValue, ReadRef, ResolvedVc, TaskInput, TryJoinIterExt, Upcast,
ValueToString, Vc, trace::TraceRawVcs, turbofmt,
};
use turbo_tasks_fs::{FileJsonContent, FileSystemPath, glob::Glob, rope::Rope};
use turbopack_core::{
Expand Down
4 changes: 2 additions & 2 deletions turbopack/crates/turbopack-node/src/evaluate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ use serde::{Deserialize, Serialize, de::DeserializeOwned};
use serde_json::Value as JsonValue;
use turbo_rcstr::{RcStr, rcstr};
use turbo_tasks::{
Completion, Effects, FxIndexMap, IntoTraitRef, NonLocalValue, OperationVc, PrettyPrintError,
ReadRef, ResolvedVc, TaskInput, TryJoinIterExt, Vc, duration_span, fxindexmap, get_effects,
Completion, Effects, FxIndexMap, NonLocalValue, OperationVc, PrettyPrintError, ReadRef,
ResolvedVc, TaskInput, TryJoinIterExt, Vc, duration_span, fxindexmap, get_effects,
trace::TraceRawVcs,
};
use turbo_tasks_env::{EnvMap, ProcessEnv};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::sync::Arc;

use anyhow::Result;
use serde::Serialize;
use turbo_tasks::{FxIndexMap, FxIndexSet, IntoTraitRef, ReadRef, ResolvedVc, Vc};
use turbo_tasks::{FxIndexMap, FxIndexSet, ReadRef, ResolvedVc, Vc};
use turbo_tasks_fs::rope::Rope;
use turbopack_core::{
chunk::ModuleId,
Expand Down
2 changes: 1 addition & 1 deletion turbopack/crates/turbopack-wasm/src/module_asset.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use anyhow::{Result, bail};
use turbo_rcstr::rcstr;
use turbo_tasks::{IntoTraitRef, ResolvedVc, Vc, fxindexmap};
use turbo_tasks::{ResolvedVc, Vc, fxindexmap};
use turbo_tasks_fs::FileSystemPath;
use turbopack_core::{
chunk::{
Expand Down
2 changes: 1 addition & 1 deletion turbopack/crates/turbopack-wasm/src/raw.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use anyhow::{Result, bail};
use turbo_rcstr::rcstr;
use turbo_tasks::{IntoTraitRef, ResolvedVc, Vc};
use turbo_tasks::{ResolvedVc, Vc};
use turbopack_core::{
chunk::{AsyncModuleInfo, ChunkableModule, ChunkingContext},
context::AssetContext,
Expand Down
2 changes: 1 addition & 1 deletion turbopack/crates/turbopack/src/module_options/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ pub use module_options_context::*;
pub use module_rule::*;
pub use rule_condition::*;
use turbo_rcstr::{RcStr, rcstr};
use turbo_tasks::{IntoTraitRef, ResolvedVc, TryJoinIterExt, Vc};
use turbo_tasks::{ResolvedVc, TryJoinIterExt, Vc};
use turbo_tasks_fs::{
FileSystemPath,
glob::{Glob, GlobOptions},
Expand Down
Loading