fn callable_item_signature(&self, def: CallableDef) -> FnSig;
#[salsa::invoke(crate::lower::generic_predicates_for_param_query)]
+ #[salsa::cycle(crate::lower::generic_predicates_for_param_recover)]
fn generic_predicates_for_param(
&self,
def: GenericDefId,
.collect()
}
+pub(crate) fn generic_predicates_for_param_recover(
+ _db: &impl HirDatabase,
+ _cycle: &[String],
+ _def: &GenericDefId,
+ _param_idx: &u32,
+) -> Arc<[GenericPredicate]> {
+ Arc::new([])
+}
+
impl TraitEnvironment {
pub fn lower(db: &impl HirDatabase, resolver: &Resolver) -> Arc<TraitEnvironment> {
let predicates = resolver
}
#[test]
-// FIXME this is currently a Salsa panic; it would be nicer if it just returned
-// in Unknown, and we should be able to do that once Salsa allows us to handle
-// the cycle. But at least it doesn't overflow for now.
-#[should_panic]
fn unselected_projection_in_trait_env_cycle_1() {
let t = type_at(
r#"
}
#[test]
-// FIXME this is currently a Salsa panic; it would be nicer if it just returned
-// in Unknown, and we should be able to do that once Salsa allows us to handle
-// the cycle. But at least it doesn't overflow for now.
-#[should_panic]
fn unselected_projection_in_trait_env_cycle_2() {
let t = type_at(
r#"