Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Judgment check_fn_in_impl at crates/formality-rust/src/check/impls.rs:151

Signature:

check_fn_in_impl(program: Program, env: Env, impl_assumptions: Wcs, trait_items: Vec<TraitItem>, ii_fn: Fn, crate_id: CrateId,) => ()

The number on each rule’s conclusion is positive coverage; the number on each premise is negative coverage. Click a number to browse the tests.

check_fn_in_impl
LineCoverageSource
163(if let Some(ti_fn) = trait_items
.iter()
.downcasted::<Fn>()
.find(|trait_f| trait_f.id == ii_fn.id))
169(super::fns::check_fn(program, env, impl_assumptions, ii_fn, crate_id) => ())
172(let (env, (ii_bound, ti_bound)) = env.instantiate_universally(&merge_binders(&ii_fn.binder, &ti_fn.binder)?))
173N/A(let FnBoundData { input_args: ii_input_args, output_ty: ii_output_ty, where_clauses: ii_where_clauses, body: _ } = ii_bound)
174N/A(let FnBoundData { input_args: ti_input_args, output_ty: ti_output_ty, where_clauses: ti_where_clauses, body: _ } = ti_bound)
177(super::prove_goal(program, &env, (&impl_assumptions, &ti_where_clauses), &ii_where_clauses) => ())
180(if ii_input_args.len() == ti_input_args.len())
183(for_all(pair in ii_input_args.iter().zip(ti_input_args.iter()))
(let (ii_input_arg, ti_input_arg) = pair)
(super::prove_goal(program, &env, (&impl_assumptions, &ii_where_clauses), Relation::sub(&ti_input_arg.ty, &ii_input_arg.ty)) => ()))
188(super::prove_goal(program, &env, (&impl_assumptions, &ii_where_clauses), Relation::sub(ii_output_ty, ti_output_ty)) => ())
──────── ("check_fn_in_impl")
191(check_fn_in_impl(program, env, impl_assumptions, trait_items, ii_fn, crate_id) => ())