Skip to content

Commit 442d865

Browse files
DiceError to its own crate
Summary: Needed for error migration from anyhow to buck2_error Context: https://fb.workplace.com/groups/buck2core/posts/926360306224373 Reviewed By: JakobDegen Differential Revision: D66859483 fbshipit-source-id: c59e82e254ecf6155971d125a777b513d3724fca
1 parent 8543a11 commit 442d865

38 files changed

+99
-50
lines changed

Cargo.toml

+2
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ members = [
8686
"app/buck2_eden",
8787
"app/buck2_validation",
8888
"dice/dice",
89+
"dice/dice_error",
8990
"dice/dice_examples",
9091
"dice/dice_tests",
9192
# @oss-disable: "dice/fuzzy_dice",
@@ -317,6 +318,7 @@ allocative.path = "allocative/allocative"
317318
allocative.version = "0.3.1"
318319
cmp_any = { path = "gazebo/cmp_any" }
319320
dice = { path = "dice/dice" }
321+
dice_error = { path = "dice/dice_error" }
320322
display_container = { path = "gazebo/display_container" }
321323
dupe.path = "gazebo/dupe"
322324
dupe.version = "0.9.0"

app/buck2_validation/BUCK

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ rust_library(
2222
"//buck2/app/buck2_error:buck2_error",
2323
"//buck2/app/buck2_execute:buck2_execute",
2424
"//buck2/dice/dice:dice",
25+
"//buck2/dice/dice_error:dice_error",
2526
"//buck2/gazebo/dupe:dupe",
2627
],
2728
)

app/buck2_validation/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ async-trait = { workspace = true }
1414
derivative = { workspace = true }
1515
derive_more = { workspace = true }
1616
dice = { workspace = true }
17+
dice_error = { workspace = true }
1718
dupe = { workspace = true }
1819
either = { workspace = true }
1920
futures = { workspace = true }

app/buck2_validation/src/transitive_validation_key.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ use derivative::Derivative;
2222
use derive_more::Display;
2323
use dice::CancellationContext;
2424
use dice::DiceComputations;
25-
use dice::DiceError;
2625
use dice::Key;
26+
use dice_error::DiceError;
2727
use dupe::Dupe;
2828
use dupe::IterDupedExt;
2929
use either::Either;

dice/dice/BUCK

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ rust_library(
3939
"fbsource//third-party/rust:typed-arena",
4040
"//buck2/allocative/allocative:allocative",
4141
"//buck2/app/buck2_futures:buck2_futures",
42+
"//buck2/dice/dice_error:dice_error",
4243
"//buck2/gazebo/cmp_any:cmp_any",
4344
"//buck2/gazebo/dupe:dupe",
4445
"//buck2/gazebo/gazebo:gazebo",

dice/dice/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ cmp_any = { workspace = true }
1515
dashmap = "5.5.3"
1616
derivative = { workspace = true }
1717
derive_more = { version = "1.0.0", features = ["full"] }
18+
dice_error = { path = "../dice_error" }
1819
dupe = { workspace = true }
1920
futures = "0.3"
2021
fxhash = "0.2.1"

dice/dice/src/api.rs

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ pub(crate) mod data;
1616
pub(crate) mod demand;
1717
pub(crate) mod dice;
1818
pub(crate) mod dyn_key;
19-
pub(crate) mod error;
2019
pub(crate) mod events;
2120
pub(crate) mod injected;
2221
pub(crate) mod invalidation_tracking;

dice/dice/src/api/computations.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ use std::sync::Arc;
1313
use allocative::Allocative;
1414
use async_trait::async_trait;
1515
use buck2_futures::cancellation::CancellationContext;
16+
use dice_error::DiceResult;
1617
use futures::future::BoxFuture;
1718

1819
use crate::api::data::DiceData;
19-
use crate::api::error::DiceResult;
2020
use crate::api::key::Key;
2121
use crate::api::opaque::OpaqueValue;
2222
use crate::api::user_data::UserComputationData;

dice/dice/src/api/transaction.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ use std::ops::Deref;
1212
use std::ops::DerefMut;
1313

1414
use allocative::Allocative;
15+
use dice_error::DiceResult;
1516
use dupe::Dupe;
1617

1718
use crate::api::computations::DiceComputations;
18-
use crate::api::error::DiceResult;
1919
use crate::api::key::Key;
2020
use crate::api::user_data::UserComputationData;
2121
use crate::transaction::DiceTransactionImpl;

dice/dice/src/ctx.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ use std::future::Future;
1111
use std::sync::Arc;
1212

1313
use allocative::Allocative;
14+
use dice_error::DiceResult;
1415
use futures::future::BoxFuture;
1516
use futures::FutureExt;
1617
use gazebo::variants::UnpackVariants;
1718

1819
use crate::api::computations::DiceComputations;
1920
use crate::api::data::DiceData;
20-
use crate::api::error::DiceResult;
2121
use crate::api::invalidation_tracking::DiceKeyTrackedInvalidationPaths;
2222
use crate::api::key::Key;
2323
use crate::api::opaque::OpaqueValue;

dice/dice/src/impls/cache.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use std::sync::atomic::Ordering;
1414

1515
use allocative::Allocative;
1616
use dashmap::DashMap;
17+
use dice_error::result::CancellationReason;
1718
use dupe::Dupe;
1819
use fxhash::FxBuildHasher;
1920
use lock_free_hashtable::sharded::ShardedLockFreeRawTable;
@@ -22,7 +23,6 @@ use crate::arc::Arc;
2223
use crate::impls::key::DiceKey;
2324
use crate::impls::task::dice::DiceTask;
2425
use crate::impls::value::DiceComputedValue;
25-
use crate::result::CancellationReason;
2626

2727
#[derive(Allocative)]
2828
struct Data {
@@ -190,6 +190,7 @@ mod tests {
190190
use buck2_futures::cancellation::CancellationContext;
191191
use buck2_futures::spawner::TokioSpawner;
192192
use derive_more::Display;
193+
use dice_error::result::CancellationReason;
193194
use dupe::Dupe;
194195
use futures::FutureExt;
195196

@@ -207,7 +208,6 @@ mod tests {
207208
use crate::impls::value::DiceValidValue;
208209
use crate::impls::value::MaybeValidDiceValue;
209210
use crate::impls::value::TrackedInvalidationPaths;
210-
use crate::result::CancellationReason;
211211
use crate::versions::VersionRanges;
212212

213213
#[derive(Allocative, Clone, Debug, Display, Eq, PartialEq, Hash)]

dice/dice/src/impls/core/internals.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
use std::thread;
1111

12+
use dice_error::result::CancellableResult;
13+
use dice_error::result::CancellationReason;
1214
use gazebo::prelude::SliceExt;
1315

1416
use super::graph::types::RejectedReason;
@@ -34,8 +36,6 @@ use crate::impls::value::DiceComputedValue;
3436
use crate::impls::value::DiceValidValue;
3537
use crate::impls::value::TrackedInvalidationPaths;
3638
use crate::metrics::Metrics;
37-
use crate::result::CancellableResult;
38-
use crate::result::CancellationReason;
3939
use crate::versions::VersionNumber;
4040

4141
/// Core state of DICE, holding the actual graph and version information
@@ -183,6 +183,7 @@ mod tests {
183183
use buck2_futures::cancellation::CancellationContext;
184184
use buck2_futures::spawner::TokioSpawner;
185185
use derive_more::Display;
186+
use dice_error::result::CancellationReason;
186187
use dupe::Dupe;
187188
use futures::FutureExt;
188189
use tokio::sync::Semaphore;
@@ -203,7 +204,6 @@ mod tests {
203204
use crate::impls::value::DiceValidValue;
204205
use crate::impls::value::MaybeValidDiceValue;
205206
use crate::impls::value::TrackedInvalidationPaths;
206-
use crate::result::CancellationReason;
207207
use crate::versions::VersionNumber;
208208
use crate::versions::VersionRanges;
209209

dice/dice/src/impls/core/state.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
use allocative::Allocative;
1111
use derivative::Derivative;
12+
use dice_error::result::CancellableResult;
1213
use dupe::Dupe;
1314
use futures::Future;
1415
use gazebo::variants::VariantName;
@@ -38,7 +39,6 @@ use crate::impls::value::DiceComputedValue;
3839
use crate::impls::value::DiceValidValue;
3940
use crate::impls::value::TrackedInvalidationPaths;
4041
use crate::metrics::Metrics;
41-
use crate::result::CancellableResult;
4242
use crate::versions::VersionNumber;
4343

4444
/// A handle to the core state that allows sending requests

dice/dice/src/impls/ctx.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ use std::sync::Arc;
1616
use allocative::Allocative;
1717
use buck2_futures::owning_future::OwningFuture;
1818
use derivative::Derivative;
19+
use dice_error::result::CancellableResult;
20+
use dice_error::result::CancellationReason;
21+
use dice_error::DiceError;
22+
use dice_error::DiceResult;
1923
use dupe::Dupe;
2024
use futures::future::BoxFuture;
2125
use futures::FutureExt;
@@ -27,7 +31,6 @@ use typed_arena::Arena;
2731
use crate::api::activation_tracker::ActivationData;
2832
use crate::api::computations::DiceComputations;
2933
use crate::api::data::DiceData;
30-
use crate::api::error::DiceResult;
3134
use crate::api::invalidation_tracking::DiceKeyTrackedInvalidationPaths;
3235
use crate::api::key::Key;
3336
use crate::api::projection::ProjectionKey;
@@ -60,11 +63,8 @@ use crate::impls::value::DiceComputedValue;
6063
use crate::impls::value::TrackedInvalidationPaths;
6164
use crate::impls::worker::project_for_key;
6265
use crate::impls::worker::DiceTaskWorker;
63-
use crate::result::CancellableResult;
64-
use crate::result::CancellationReason;
6566
use crate::transaction_update::DiceTransactionUpdaterImpl;
6667
use crate::versions::VersionNumber;
67-
use crate::DiceError;
6868
use crate::DiceTransactionUpdater;
6969
use crate::LinearRecomputeDiceComputations;
7070
use crate::UserCycleDetectorGuard;

dice/dice/src/impls/evaluator.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use std::sync::Arc;
1111

1212
use allocative::Allocative;
13+
use dice_error::result::CancellableResult;
1314
use dupe::Dupe;
1415

1516
use crate::api::computations::DiceComputations;
@@ -29,7 +30,6 @@ use crate::impls::value::MaybeValidDiceValue;
2930
use crate::impls::value::TrackedInvalidationPaths;
3031
use crate::impls::worker::state::DiceWorkerStateEvaluating;
3132
use crate::impls::worker::state::DiceWorkerStateFinishedEvaluating;
32-
use crate::result::CancellableResult;
3333
use crate::ActivationData;
3434

3535
/// Evaluates Keys

dice/dice/src/impls/task/dice.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ use std::task::Poll;
1818
use allocative::Allocative;
1919
use allocative::Visitor;
2020
use buck2_futures::cancellation::future::CancellationHandle;
21+
use dice_error::result::CancellableResult;
22+
use dice_error::result::CancellationReason;
2123
use dupe::Dupe;
2224
use dupe::OptionDupedExt;
2325
use futures::task::AtomicWaker;
@@ -34,8 +36,6 @@ use crate::impls::task::handle::TaskState;
3436
use crate::impls::task::promise::DicePromise;
3537
use crate::impls::task::state::AtomicDiceTaskState;
3638
use crate::impls::value::DiceComputedValue;
37-
use crate::result::CancellableResult;
38-
use crate::result::CancellationReason;
3939
use crate::GlobalStats;
4040

4141
///

dice/dice/src/impls/task/handle.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
//! Handle to the DiceTask as seen by the thread responsible for completing the task
1111
1212
use buck2_futures::cancellation::ExplicitCancellationContext;
13+
use dice_error::result::CancellationReason;
1314
use dupe::Dupe;
1415

1516
use crate::arc::Arc;
1617
use crate::impls::task::dice::DiceTaskInternal;
1718
use crate::impls::value::DiceComputedValue;
18-
use crate::result::CancellationReason;
1919

2020
/// The handle to the 'DiceTask' owned by the spawned thread that is responsible for completing
2121
/// the task.

dice/dice/src/impls/task/promise.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use std::pin::Pin;
1515
use std::task::Context;
1616
use std::task::Poll;
1717

18+
use dice_error::result::CancellableResult;
1819
use dupe::Dupe;
1920
use futures::future::BoxFuture;
2021
use futures::task::AtomicWaker;
@@ -25,7 +26,6 @@ use crate::impls::task::dice::DiceTaskInternal;
2526
use crate::impls::task::dice::SlabId;
2627
use crate::impls::task::handle::TaskState;
2728
use crate::impls::value::DiceComputedValue;
28-
use crate::result::CancellableResult;
2929

3030
/// A string reference to a 'DiceTask' that is pollable as a future.
3131
/// This is only awoken when the result is ready, as none of the pollers are responsible for

dice/dice/src/impls/task/tests.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use async_trait::async_trait;
1818
use buck2_futures::cancellation::CancellationContext;
1919
use buck2_futures::spawner::TokioSpawner;
2020
use derive_more::Display;
21+
use dice_error::result::CancellationReason;
2122
use dupe::Dupe;
2223
use futures::pin_mut;
2324
use futures::poll;
@@ -42,7 +43,6 @@ use crate::impls::value::DiceKeyValue;
4243
use crate::impls::value::DiceValidValue;
4344
use crate::impls::value::MaybeValidDiceValue;
4445
use crate::impls::value::TrackedInvalidationPaths;
45-
use crate::result::CancellationReason;
4646
use crate::versions::VersionRanges;
4747

4848
#[derive(Allocative, Clone, Debug, Display, Eq, PartialEq, Hash)]

dice/dice/src/impls/tests/general.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ use async_trait::async_trait;
1919
use buck2_futures::cancellation::CancellationContext;
2020
use derivative::Derivative;
2121
use derive_more::Display;
22+
use dice_error::DiceErrorImpl;
2223
use dupe::Dupe;
2324
use futures::FutureExt;
2425
use tokio::sync::oneshot;
2526

2627
use crate::api::computations::DiceComputations;
2728
use crate::api::cycles::DetectCycles;
28-
use crate::api::error::DiceErrorImpl;
2929
use crate::api::injected::InjectedKey;
3030
use crate::api::key::Key;
3131
use crate::api::user_data::UserComputationData;

dice/dice/src/impls/transaction.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ use std::sync::Arc;
1111

1212
use allocative::Allocative;
1313
use derivative::Derivative;
14+
use dice_error::DiceError;
15+
use dice_error::DiceResult;
1416
use dupe::Dupe;
1517

16-
use crate::api::error::DiceError;
17-
use crate::api::error::DiceResult;
1818
use crate::api::key::InvalidationSourcePriority;
1919
use crate::api::key::Key;
2020
use crate::api::storage_type::StorageType;

dice/dice/src/impls/user_cycle.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99

1010
use std::sync::Arc;
1111

12+
use dice_error::DiceError;
13+
use dice_error::DiceErrorImpl;
14+
use dice_error::DiceResult;
1215
use dupe::Dupe;
1316

14-
use crate::api::error::DiceError;
15-
use crate::api::error::DiceErrorImpl;
16-
use crate::api::error::DiceResult;
1717
use crate::api::user_data::UserCycleDetector;
1818
use crate::api::user_data::UserCycleDetectorGuard;
1919
use crate::impls::key::DiceKey;

dice/dice/src/impls/worker.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
use std::any::Any;
1313
use std::future;
1414

15+
use dice_error::result::CancellableResult;
16+
use dice_error::result::CancellationReason;
1517
use dupe::Dupe;
1618
use futures::future::BoxFuture;
1719
use futures::pin_mut;
@@ -53,8 +55,6 @@ use crate::impls::worker::state::DiceWorkerStateEvaluating;
5355
use crate::impls::worker::state::DiceWorkerStateFinishedAndCached;
5456
use crate::impls::worker::state::DiceWorkerStateFinishedEvaluating;
5557
use crate::impls::worker::state::DiceWorkerStateLookupNode;
56-
use crate::result::CancellableResult;
57-
use crate::result::CancellationReason;
5858
use crate::versions::VersionNumber;
5959
use crate::versions::VersionRange;
6060

dice/dice/src/impls/worker/state.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ use std::sync::Arc;
1414
use buck2_futures::cancellable_future::DisableCancellationGuard;
1515
use buck2_futures::cancellation::CriticalSectionGuard;
1616
use buck2_futures::cancellation::ExplicitCancellationContext;
17+
use dice_error::result::CancellableResult;
18+
use dice_error::result::CancellationReason;
1719
use dupe::Dupe;
1820
use itertools::Either;
1921

@@ -27,8 +29,6 @@ use crate::impls::task::PreviouslyCancelledTask;
2729
use crate::impls::user_cycle::KeyComputingUserCycleDetectorData;
2830
use crate::impls::user_cycle::UserCycleDetectorData;
2931
use crate::impls::value::DiceComputedValue;
30-
use crate::result::CancellableResult;
31-
use crate::result::CancellationReason;
3232
use crate::ActivationData;
3333
use crate::ActivationTracker;
3434
use crate::DynKey;

dice/dice/src/impls/worker/tests.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ use assert_matches::assert_matches;
2020
use async_trait::async_trait;
2121
use buck2_futures::cancellation::CancellationContext;
2222
use derive_more::Display;
23+
use dice_error::result::CancellableResult;
24+
use dice_error::result::CancellationReason;
2325
use dupe::Dupe;
2426
use dupe::IterDupedExt;
2527
use futures::pin_mut;
@@ -63,8 +65,6 @@ use crate::impls::worker::check_dependencies;
6365
use crate::impls::worker::testing::CheckDependenciesResultExt;
6466
use crate::impls::worker::CheckDependenciesResult;
6567
use crate::impls::worker::DiceTaskWorker;
66-
use crate::result::CancellableResult;
67-
use crate::result::CancellationReason;
6868
use crate::versions::VersionNumber;
6969
use crate::versions::VersionRange;
7070
use crate::versions::VersionRanges;

0 commit comments

Comments
 (0)