Merge pull request #20157 from Veykril/push-nxrvpywtvoys

Re-enable fixpoint iteration for variance computation
This commit is contained in:
Lukas Wirth 2025-07-03 09:27:44 +00:00 committed by GitHub
commit fc2a3bfdab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 13 additions and 13 deletions

View File

@ -179,9 +179,10 @@ impl Name {
self.symbol.as_str() self.symbol.as_str()
} }
#[inline]
pub fn display<'a>( pub fn display<'a>(
&'a self, &'a self,
db: &dyn crate::db::ExpandDatabase, db: &dyn salsa::Database,
edition: Edition, edition: Edition,
) -> impl fmt::Display + 'a { ) -> impl fmt::Display + 'a {
_ = db; _ = db;

View File

@ -273,9 +273,8 @@ pub trait HirDatabase: DefDatabase + std::fmt::Debug {
#[salsa::invoke(crate::variance::variances_of)] #[salsa::invoke(crate::variance::variances_of)]
#[salsa::cycle( #[salsa::cycle(
// cycle_fn = crate::variance::variances_of_cycle_fn, cycle_fn = crate::variance::variances_of_cycle_fn,
// cycle_initial = crate::variance::variances_of_cycle_initial, cycle_initial = crate::variance::variances_of_cycle_initial,
cycle_result = crate::variance::variances_of_cycle_initial,
)] )]
fn variances_of(&self, def: GenericDefId) -> Option<Arc<[crate::variance::Variance]>>; fn variances_of(&self, def: GenericDefId) -> Option<Arc<[crate::variance::Variance]>>;

View File

@ -54,14 +54,14 @@ pub(crate) fn variances_of(db: &dyn HirDatabase, def: GenericDefId) -> Option<Ar
variances.is_empty().not().then(|| Arc::from_iter(variances)) variances.is_empty().not().then(|| Arc::from_iter(variances))
} }
// pub(crate) fn variances_of_cycle_fn( pub(crate) fn variances_of_cycle_fn(
// _db: &dyn HirDatabase, _db: &dyn HirDatabase,
// _result: &Option<Arc<[Variance]>>, _result: &Option<Arc<[Variance]>>,
// _count: u32, _count: u32,
// _def: GenericDefId, _def: GenericDefId,
// ) -> salsa::CycleRecoveryAction<Option<Arc<[Variance]>>> { ) -> salsa::CycleRecoveryAction<Option<Arc<[Variance]>>> {
// salsa::CycleRecoveryAction::Iterate salsa::CycleRecoveryAction::Iterate
// } }
pub(crate) fn variances_of_cycle_initial( pub(crate) fn variances_of_cycle_initial(
db: &dyn HirDatabase, db: &dyn HirDatabase,
@ -965,7 +965,7 @@ struct S3<T>(S<T, T>);
struct FixedPoint<T, U, V>(&'static FixedPoint<(), T, U>, V); struct FixedPoint<T, U, V>(&'static FixedPoint<(), T, U>, V);
"#, "#,
expect![[r#" expect![[r#"
FixedPoint[T: bivariant, U: bivariant, V: bivariant] FixedPoint[T: covariant, U: covariant, V: covariant]
"#]], "#]],
); );
} }