[ty] follow the breaking API changes made in salsa-rs/salsa#1015 (#21117)

This commit is contained in:
Shunsuke Shibayama 2025-10-29 23:56:12 +09:00 committed by GitHub
parent 8b22fd1a5f
commit 83a00c0ac8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 80 additions and 15 deletions

6
Cargo.lock generated
View file

@ -3563,7 +3563,7 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "salsa"
version = "0.24.0"
source = "git+https://github.com/salsa-rs/salsa.git?rev=25b3ef146cfa2615f4ec82760bd0c22b454d0a12#25b3ef146cfa2615f4ec82760bd0c22b454d0a12"
source = "git+https://github.com/salsa-rs/salsa.git?rev=cdd0b85516a52c18b8a6d17a2279a96ed6c3e198#cdd0b85516a52c18b8a6d17a2279a96ed6c3e198"
dependencies = [
"boxcar",
"compact_str",
@ -3587,12 +3587,12 @@ dependencies = [
[[package]]
name = "salsa-macro-rules"
version = "0.24.0"
source = "git+https://github.com/salsa-rs/salsa.git?rev=25b3ef146cfa2615f4ec82760bd0c22b454d0a12#25b3ef146cfa2615f4ec82760bd0c22b454d0a12"
source = "git+https://github.com/salsa-rs/salsa.git?rev=cdd0b85516a52c18b8a6d17a2279a96ed6c3e198#cdd0b85516a52c18b8a6d17a2279a96ed6c3e198"
[[package]]
name = "salsa-macros"
version = "0.24.0"
source = "git+https://github.com/salsa-rs/salsa.git?rev=25b3ef146cfa2615f4ec82760bd0c22b454d0a12#25b3ef146cfa2615f4ec82760bd0c22b454d0a12"
source = "git+https://github.com/salsa-rs/salsa.git?rev=cdd0b85516a52c18b8a6d17a2279a96ed6c3e198#cdd0b85516a52c18b8a6d17a2279a96ed6c3e198"
dependencies = [
"proc-macro2",
"quote",

View file

@ -146,7 +146,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 = "25b3ef146cfa2615f4ec82760bd0c22b454d0a12", default-features = false, features = [
salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "cdd0b85516a52c18b8a6d17a2279a96ed6c3e198", default-features = false, features = [
"compact_str",
"macros",
"salsa_unstable",

View file

@ -10,7 +10,11 @@ use crate::semantic_index::{SemanticIndex, semantic_index};
use crate::types::{Truthiness, Type, TypeContext, infer_expression_types};
use crate::{Db, ModuleName, resolve_module};
fn dunder_all_names_cycle_initial(_db: &dyn Db, _file: File) -> Option<FxHashSet<Name>> {
fn dunder_all_names_cycle_initial(
_db: &dyn Db,
_id: salsa::Id,
_file: File,
) -> Option<FxHashSet<Name>> {
None
}

View file

@ -697,6 +697,7 @@ impl<'db> From<Place<'db>> for PlaceAndQualifiers<'db> {
fn place_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_scope: ScopeId<'db>,
_place_id: ScopedPlaceId,
_requires_explicit_reexport: RequiresExplicitReExport,
@ -1528,7 +1529,10 @@ mod implicit_globals {
.collect()
}
fn module_type_symbols_initial(_db: &dyn Db) -> smallvec::SmallVec<[ast::name::Name; 8]> {
fn module_type_symbols_initial(
_db: &dyn Db,
_id: salsa::Id,
) -> smallvec::SmallVec<[ast::name::Name; 8]> {
smallvec::SmallVec::default()
}

View file

@ -30,7 +30,7 @@ use rustc_hash::FxHashMap;
use crate::{Db, module_name::ModuleName, resolve_module};
fn exports_cycle_initial(_db: &dyn Db, _file: File) -> Box<[Name]> {
fn exports_cycle_initial(_db: &dyn Db, _id: salsa::Id, _file: File) -> Box<[Name]> {
Box::default()
}

View file

@ -371,6 +371,7 @@ impl Default for MemberLookupPolicy {
fn member_lookup_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: Type<'db>,
_name: Name,
_policy: MemberLookupPolicy,
@ -380,6 +381,7 @@ fn member_lookup_cycle_initial<'db>(
fn class_lookup_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: Type<'db>,
_name: Name,
_policy: MemberLookupPolicy,
@ -389,6 +391,7 @@ fn class_lookup_cycle_initial<'db>(
fn variance_cycle_initial<'db, T>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: T,
_typevar: BoundTypeVarInstance<'db>,
) -> TypeVarVariance {
@ -7420,6 +7423,7 @@ impl<'db> VarianceInferable<'db> for Type<'db> {
#[allow(clippy::trivially_copy_pass_by_ref)]
fn is_redundant_with_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_subtype: Type<'db>,
_supertype: Type<'db>,
) -> bool {
@ -7428,6 +7432,7 @@ fn is_redundant_with_cycle_initial<'db>(
fn apply_specialization_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: Type<'db>,
_specialization: Specialization<'db>,
) -> Type<'db> {
@ -8498,6 +8503,7 @@ impl<'db> TypeVarInstance<'db> {
fn lazy_bound_or_constraints_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: TypeVarInstance<'db>,
) -> Option<TypeVarBoundOrConstraints<'db>> {
None
@ -8505,6 +8511,7 @@ fn lazy_bound_or_constraints_cycle_initial<'db>(
fn lazy_default_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: TypeVarInstance<'db>,
) -> Option<Type<'db>> {
None
@ -10032,6 +10039,7 @@ fn walk_bound_method_type<'db, V: visitor::TypeVisitor<'db> + ?Sized>(
fn into_callable_type_cycle_initial<'db>(
db: &'db dyn Db,
_id: salsa::Id,
_self: BoundMethodType<'db>,
) -> CallableType<'db> {
CallableType::bottom(db)
@ -11007,12 +11015,17 @@ impl<'db> PEP695TypeAliasType<'db> {
fn generic_context_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: PEP695TypeAliasType<'db>,
) -> Option<GenericContext<'db>> {
None
}
fn value_type_cycle_initial<'db>(_db: &'db dyn Db, _self: PEP695TypeAliasType<'db>) -> Type<'db> {
fn value_type_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: PEP695TypeAliasType<'db>,
) -> Type<'db> {
Type::Never
}

View file

@ -71,6 +71,7 @@ use rustc_hash::FxHashSet;
fn explicit_bases_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: ClassLiteral<'db>,
) -> Box<[Type<'db>]> {
Box::default()
@ -78,6 +79,7 @@ fn explicit_bases_cycle_initial<'db>(
fn inheritance_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: ClassLiteral<'db>,
) -> Option<InheritanceCycle> {
None
@ -85,6 +87,7 @@ fn inheritance_cycle_initial<'db>(
fn implicit_attribute_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_class_body_scope: ScopeId<'db>,
_name: String,
_target_method_decorator: MethodDecorator,
@ -94,6 +97,7 @@ fn implicit_attribute_initial<'db>(
fn try_mro_cycle_initial<'db>(
db: &'db dyn Db,
_id: salsa::Id,
self_: ClassLiteral<'db>,
specialization: Option<Specialization<'db>>,
) -> Result<Mro<'db>, MroError<'db>> {
@ -104,13 +108,18 @@ fn try_mro_cycle_initial<'db>(
}
#[allow(clippy::unnecessary_wraps)]
fn is_typed_dict_cycle_initial<'db>(_db: &'db dyn Db, _self: ClassLiteral<'db>) -> bool {
fn is_typed_dict_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: ClassLiteral<'db>,
) -> bool {
false
}
#[allow(clippy::unnecessary_wraps)]
fn try_metaclass_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self_: ClassLiteral<'db>,
) -> Result<(Type<'db>, Option<DataclassTransformerParams<'db>>), MetaclassError<'db>> {
Err(MetaclassError {
@ -169,6 +178,7 @@ impl<'db> CodeGeneratorKind<'db> {
fn code_generator_of_class_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_class: ClassLiteral<'db>,
_specialization: Option<Specialization<'db>>,
) -> Option<CodeGeneratorKind<'db>> {
@ -1181,7 +1191,11 @@ impl<'db> ClassType<'db> {
}
}
fn into_callable_cycle_initial<'db>(_db: &'db dyn Db, _self: ClassType<'db>) -> Type<'db> {
fn into_callable_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: ClassType<'db>,
) -> Type<'db> {
Type::Never
}
@ -1334,6 +1348,7 @@ impl get_size2::GetSize for ClassLiteral<'_> {}
fn generic_context_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: ClassLiteral<'db>,
) -> Option<GenericContext<'db>> {
None

View file

@ -39,6 +39,7 @@ impl EnumMetadata<'_> {
#[allow(clippy::unnecessary_wraps)]
fn enum_metadata_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_class: ClassLiteral<'db>,
) -> Option<EnumMetadata<'db>> {
Some(EnumMetadata::empty())

View file

@ -1195,6 +1195,7 @@ fn is_mode_with_nontrivial_return_type<'db>(db: &'db dyn Db, mode: Type<'db>) ->
fn signature_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_function: FunctionType<'db>,
) -> CallableSignature<'db> {
CallableSignature::single(Signature::bottom())
@ -1202,6 +1203,7 @@ fn signature_cycle_initial<'db>(
fn last_definition_signature_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_function: FunctionType<'db>,
) -> Signature<'db> {
Signature::bottom()

View file

@ -627,6 +627,7 @@ impl<'db> GenericContext<'db> {
fn inferable_typevars_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_self: GenericContext<'db>,
) -> FxHashSet<BoundTypeVarIdentity<'db>> {
FxHashSet::default()

View file

@ -81,7 +81,11 @@ pub(crate) fn infer_scope_types<'db>(db: &'db dyn Db, scope: ScopeId<'db>) -> Sc
TypeInferenceBuilder::new(db, InferenceRegion::Scope(scope), index, &module).finish_scope()
}
fn scope_cycle_initial<'db>(_db: &'db dyn Db, scope: ScopeId<'db>) -> ScopeInference<'db> {
fn scope_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
scope: ScopeId<'db>,
) -> ScopeInference<'db> {
ScopeInference::cycle_initial(scope)
}
@ -126,6 +130,7 @@ fn definition_cycle_recover<'db>(
fn definition_cycle_initial<'db>(
db: &'db dyn Db,
_id: salsa::Id,
definition: Definition<'db>,
) -> DefinitionInference<'db> {
DefinitionInference::cycle_initial(definition.scope(db))
@ -158,6 +163,7 @@ pub(crate) fn infer_deferred_types<'db>(
fn deferred_cycle_initial<'db>(
db: &'db dyn Db,
_id: salsa::Id,
definition: Definition<'db>,
) -> DefinitionInference<'db> {
DefinitionInference::cycle_initial(definition.scope(db))
@ -240,6 +246,7 @@ fn expression_cycle_recover<'db>(
fn expression_cycle_initial<'db>(
db: &'db dyn Db,
_id: salsa::Id,
input: InferExpression<'db>,
) -> ExpressionInference<'db> {
ExpressionInference::cycle_initial(input.expression(db).scope(db))
@ -287,6 +294,7 @@ fn infer_expression_type_impl<'db>(db: &'db dyn Db, input: InferExpression<'db>)
fn single_expression_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_input: InferExpression<'db>,
) -> Type<'db> {
Type::Never
@ -399,6 +407,7 @@ pub(crate) fn static_expression_truthiness<'db>(
fn static_expression_truthiness_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_expression: Expression<'db>,
) -> Truthiness {
Truthiness::Ambiguous
@ -422,7 +431,11 @@ pub(super) fn infer_unpack_types<'db>(db: &'db dyn Db, unpack: Unpack<'db>) -> U
unpacker.finish()
}
fn unpack_cycle_initial<'db>(_db: &'db dyn Db, _unpack: Unpack<'db>) -> UnpackResult<'db> {
fn unpack_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_unpack: Unpack<'db>,
) -> UnpackResult<'db> {
UnpackResult::cycle_initial(Type::Never)
}

View file

@ -666,7 +666,12 @@ impl<'db> ProtocolInstanceType<'db> {
.is_always_satisfied(db)
}
fn initial<'db>(_db: &'db dyn Db, _value: ProtocolInstanceType<'db>, _: ()) -> bool {
fn initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_value: ProtocolInstanceType<'db>,
_: (),
) -> bool {
true
}

View file

@ -120,6 +120,7 @@ fn all_negative_narrowing_constraints_for_pattern<'db>(
fn constraints_for_expression_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_expression: Expression<'db>,
) -> Option<NarrowingConstraints<'db>> {
None
@ -127,6 +128,7 @@ fn constraints_for_expression_cycle_initial<'db>(
fn negative_constraints_for_expression_cycle_initial<'db>(
_db: &'db dyn Db,
_id: salsa::Id,
_expression: Expression<'db>,
) -> Option<NarrowingConstraints<'db>> {
None

View file

@ -866,6 +866,7 @@ fn cached_protocol_interface<'db>(
#[allow(clippy::trivially_copy_pass_by_ref)]
fn proto_interface_cycle_initial<'db>(
db: &'db dyn Db,
_id: salsa::Id,
_class: ClassType<'db>,
) -> ProtocolInterface<'db> {
ProtocolInterface::empty(db)

View file

@ -290,7 +290,11 @@ impl<'db> TupleType<'db> {
}
}
fn to_class_type_cycle_initial<'db>(db: &'db dyn Db, self_: TupleType<'db>) -> ClassType<'db> {
fn to_class_type_cycle_initial<'db>(
db: &'db dyn Db,
_id: salsa::Id,
self_: TupleType<'db>,
) -> ClassType<'db> {
let tuple_class = KnownClass::Tuple
.try_to_class_literal(db)
.expect("Typeshed should always have a `tuple` class in `builtins.pyi`");

View file

@ -30,7 +30,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 = "25b3ef146cfa2615f4ec82760bd0c22b454d0a12", default-features = false, features = [
salsa = { git = "https://github.com/salsa-rs/salsa.git", rev = "cdd0b85516a52c18b8a6d17a2279a96ed6c3e198", default-features = false, features = [
"compact_str",
"macros",
"salsa_unstable",