diff --git a/Cargo.lock b/Cargo.lock index 2bafb113c1..4cec753700 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3620,8 +3620,8 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "salsa" -version = "0.24.0" -source = "git+https://github.com/salsa-rs/salsa.git?rev=55e5e7d32fa3fc189276f35bb04c9438f9aedbd1#55e5e7d32fa3fc189276f35bb04c9438f9aedbd1" +version = "0.25.2" +source = "git+https://github.com/salsa-rs/salsa.git?rev=ce80691fa0b87dc2fd2235a26544e63e5e43d8d3#ce80691fa0b87dc2fd2235a26544e63e5e43d8d3" dependencies = [ "boxcar", "compact_str", @@ -3645,13 +3645,13 @@ dependencies = [ [[package]] name = "salsa-macro-rules" -version = "0.24.0" -source = "git+https://github.com/salsa-rs/salsa.git?rev=55e5e7d32fa3fc189276f35bb04c9438f9aedbd1#55e5e7d32fa3fc189276f35bb04c9438f9aedbd1" +version = "0.25.2" +source = "git+https://github.com/salsa-rs/salsa.git?rev=ce80691fa0b87dc2fd2235a26544e63e5e43d8d3#ce80691fa0b87dc2fd2235a26544e63e5e43d8d3" [[package]] name = "salsa-macros" -version = "0.24.0" -source = "git+https://github.com/salsa-rs/salsa.git?rev=55e5e7d32fa3fc189276f35bb04c9438f9aedbd1#55e5e7d32fa3fc189276f35bb04c9438f9aedbd1" +version = "0.25.2" +source = "git+https://github.com/salsa-rs/salsa.git?rev=ce80691fa0b87dc2fd2235a26544e63e5e43d8d3#ce80691fa0b87dc2fd2235a26544e63e5e43d8d3" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index d887837f0a..d79b74610e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -147,7 +147,7 @@ regex-automata = { version = "0.4.9" } rustc-hash = { version = "2.0.0" } rustc-stable-hash = { version = "0.1.2" } # When updating salsa, make sure to also update the revision in `fuzz/Cargo.toml` -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "55e5e7d32fa3fc189276f35bb04c9438f9aedbd1", default-features = false, features = [ +salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "ce80691fa0b87dc2fd2235a26544e63e5e43d8d3", default-features = false, features = [ "compact_str", "macros", "salsa_unstable", diff --git a/crates/ty_python_semantic/src/types.rs b/crates/ty_python_semantic/src/types.rs index da46f40709..bcca8e77fe 100644 --- a/crates/ty_python_semantic/src/types.rs +++ b/crates/ty_python_semantic/src/types.rs @@ -9313,7 +9313,7 @@ impl<'db> TypeAndQualifiers<'db> { /// Error struct providing information on type(s) that were deemed to be invalid /// in a type expression context, and the type we should therefore fallback to /// for the problematic type expression. -#[derive(Clone, Debug, PartialEq, Eq, Hash, get_size2::GetSize)] +#[derive(Clone, Debug, PartialEq, Eq, Hash, get_size2::GetSize, salsa::Update)] pub struct InvalidTypeExpressionError<'db> { fallback_type: Type<'db>, invalid_expressions: smallvec::SmallVec<[InvalidTypeExpression<'db>; 1]>, @@ -9344,7 +9344,7 @@ impl<'db> InvalidTypeExpressionError<'db> { } /// Enumeration of various types that are invalid in type-expression contexts -#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, get_size2::GetSize)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, get_size2::GetSize, salsa::Update)] enum InvalidTypeExpression<'db> { /// Some types always require exactly one argument when used in a type expression RequiresOneArgument(SpecialFormType), diff --git a/crates/ty_python_semantic/src/types/bound_super.rs b/crates/ty_python_semantic/src/types/bound_super.rs index 99d0ce50fe..47a9bdeac3 100644 --- a/crates/ty_python_semantic/src/types/bound_super.rs +++ b/crates/ty_python_semantic/src/types/bound_super.rs @@ -180,7 +180,7 @@ impl<'db> BoundSuperError<'db> { } } -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, get_size2::GetSize)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, get_size2::GetSize, salsa::Update)] pub enum SuperOwnerKind<'db> { Dynamic(DynamicType<'db>), Class(ClassType<'db>), diff --git a/crates/ty_python_semantic/src/types/constraints.rs b/crates/ty_python_semantic/src/types/constraints.rs index bd78d94c9b..f5e2b6c98c 100644 --- a/crates/ty_python_semantic/src/types/constraints.rs +++ b/crates/ty_python_semantic/src/types/constraints.rs @@ -2656,7 +2656,7 @@ fn sequent_map_cycle_initial<'db>( /// An assignment of one BDD variable to either `true` or `false`. (When evaluating a BDD, we /// must provide an assignment for each variable present in the BDD.) -#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] +#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq, salsa::Update)] pub(crate) enum ConstraintAssignment<'db> { Positive(ConstrainedTypeVar<'db>), Negative(ConstrainedTypeVar<'db>), diff --git a/crates/ty_python_semantic/src/types/infer.rs b/crates/ty_python_semantic/src/types/infer.rs index b9adc93eb2..3a1f442592 100644 --- a/crates/ty_python_semantic/src/types/infer.rs +++ b/crates/ty_python_semantic/src/types/infer.rs @@ -354,7 +354,7 @@ pub(super) struct ExpressionWithContext<'db> { /// /// Knowing the outer type context when inferring an expression can enable /// more precise inference results, aka "bidirectional type inference". -#[derive(Default, Copy, Clone, Debug, PartialEq, Eq, Hash, get_size2::GetSize)] +#[derive(Default, Copy, Clone, Debug, PartialEq, Eq, Hash, get_size2::GetSize, salsa::Update)] pub(crate) struct TypeContext<'db> { pub(crate) annotation: Option>, } diff --git a/crates/ty_python_semantic/src/types/tuple.rs b/crates/ty_python_semantic/src/types/tuple.rs index 1a84ec0ea3..f61bb8dfff 100644 --- a/crates/ty_python_semantic/src/types/tuple.rs +++ b/crates/ty_python_semantic/src/types/tuple.rs @@ -350,7 +350,7 @@ pub(crate) type TupleSpec<'db> = Tuple>; /// /// Our tuple representation can hold instances of any Rust type. For tuples containing Python /// types, use [`TupleSpec`], which defines some additional type-specific methods. -#[derive(Clone, Debug, Eq, Hash, PartialEq, get_size2::GetSize)] +#[derive(Clone, Debug, Eq, Hash, PartialEq, get_size2::GetSize, salsa::Update)] pub struct FixedLengthTuple(Box<[T]>); impl FixedLengthTuple { @@ -635,7 +635,7 @@ impl<'db> PySlice<'db> for FixedLengthTuple> { /// /// Our tuple representation can hold instances of any Rust type. For tuples containing Python /// types, use [`TupleSpec`], which defines some additional type-specific methods. -#[derive(Clone, Debug, Eq, Hash, PartialEq, get_size2::GetSize)] +#[derive(Clone, Debug, Eq, Hash, PartialEq, get_size2::GetSize, salsa::Update)] pub struct VariableLengthTuple { pub(crate) prefix: Box<[T]>, pub(crate) variable: T, @@ -1191,7 +1191,7 @@ impl<'db> PyIndex<'db> for &VariableLengthTuple> { /// /// Our tuple representation can hold instances of any Rust type. For tuples containing Python /// types, use [`TupleSpec`], which defines some additional type-specific methods. -#[derive(Clone, Debug, Eq, Hash, PartialEq, get_size2::GetSize)] +#[derive(Clone, Debug, Eq, Hash, PartialEq, get_size2::GetSize, salsa::Update)] pub enum Tuple { Fixed(FixedLengthTuple), Variable(VariableLengthTuple), diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index b42235ed2a..2f12209726 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -31,7 +31,7 @@ ty_python_semantic = { path = "../crates/ty_python_semantic" } ty_vendored = { path = "../crates/ty_vendored" } libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer", default-features = false } -salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "55e5e7d32fa3fc189276f35bb04c9438f9aedbd1", default-features = false, features = [ +salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "ce80691fa0b87dc2fd2235a26544e63e5e43d8d3", default-features = false, features = [ "compact_str", "macros", "salsa_unstable",