mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-07-07 21:25:37 +00:00
Re-enable fixpoint iteration for variance computation
This commit is contained in:
parent
8029c731ed
commit
a3dc41bf97
3 changed files with 13 additions and 13 deletions
|
@ -179,9 +179,10 @@ impl Name {
|
|||
self.symbol.as_str()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn display<'a>(
|
||||
&'a self,
|
||||
db: &dyn crate::db::ExpandDatabase,
|
||||
db: &dyn salsa::Database,
|
||||
edition: Edition,
|
||||
) -> impl fmt::Display + 'a {
|
||||
_ = db;
|
||||
|
|
|
@ -273,9 +273,8 @@ pub trait HirDatabase: DefDatabase + std::fmt::Debug {
|
|||
|
||||
#[salsa::invoke(crate::variance::variances_of)]
|
||||
#[salsa::cycle(
|
||||
// cycle_fn = crate::variance::variances_of_cycle_fn,
|
||||
// cycle_initial = crate::variance::variances_of_cycle_initial,
|
||||
cycle_result = crate::variance::variances_of_cycle_initial,
|
||||
cycle_fn = crate::variance::variances_of_cycle_fn,
|
||||
cycle_initial = crate::variance::variances_of_cycle_initial,
|
||||
)]
|
||||
fn variances_of(&self, def: GenericDefId) -> Option<Arc<[crate::variance::Variance]>>;
|
||||
|
||||
|
|
|
@ -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))
|
||||
}
|
||||
|
||||
// pub(crate) fn variances_of_cycle_fn(
|
||||
// _db: &dyn HirDatabase,
|
||||
// _result: &Option<Arc<[Variance]>>,
|
||||
// _count: u32,
|
||||
// _def: GenericDefId,
|
||||
// ) -> salsa::CycleRecoveryAction<Option<Arc<[Variance]>>> {
|
||||
// salsa::CycleRecoveryAction::Iterate
|
||||
// }
|
||||
pub(crate) fn variances_of_cycle_fn(
|
||||
_db: &dyn HirDatabase,
|
||||
_result: &Option<Arc<[Variance]>>,
|
||||
_count: u32,
|
||||
_def: GenericDefId,
|
||||
) -> salsa::CycleRecoveryAction<Option<Arc<[Variance]>>> {
|
||||
salsa::CycleRecoveryAction::Iterate
|
||||
}
|
||||
|
||||
pub(crate) fn variances_of_cycle_initial(
|
||||
db: &dyn HirDatabase,
|
||||
|
@ -965,7 +965,7 @@ struct S3<T>(S<T, T>);
|
|||
struct FixedPoint<T, U, V>(&'static FixedPoint<(), T, U>, V);
|
||||
"#,
|
||||
expect![[r#"
|
||||
FixedPoint[T: bivariant, U: bivariant, V: bivariant]
|
||||
FixedPoint[T: covariant, U: covariant, V: covariant]
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue