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

Coverage report

Judgment/RulePositive coverageNegative coverage
propagated_grandchild--
↳ value✗N/A
propagated_child--
↳ grandchild✗0/1
calls_child_then_grandchild--
↳ both✗0/3
reused_child--
↳ value✗N/A
calls_reused_child_twice--
↳ twice✗0/2
propagated_other_child--
↳ grandchild✗0/1
calls_sibling_children--
↳ siblings✗0/3
counted_root--
↳ value✗N/A
shared_child--
↳ value✗N/A
first_root--
↳ child✗0/1
second_root--
↳ child✗0/1
memo_reachable--
↳ edge✗0/1
↳ transitive✗0/2
monotone_node--
↳ minimal satisfying clause✗0/2
check_adt--
↳ check adt59 tests1/2
borrow_check--
↳ borrow_check175 tests1/1
borrow_check_block--
↳ basic block175 tests1/3
borrow_check_statement-no applicable rule observed
↳ let94 tests1/3
↳ let-no-init6 tests1/2
↳ if29 tests2/3
↳ expr47 tests1/1
↳ loop23 tests1/2
↳ break17 tests1/2
↳ continue3 tests2/3
↳ return79 tests2/3
↳ block6 tests1/1
↳ exists48 tests0/2
↳ exists48 tests0/2
↳ exists48 tests0/2
↳ print75 tests0/1
borrow_check_expr_has_ty--
↳ block118 tests2/2
borrow_check_expr--
↳ parenthesized5 tests0/1
↳ multiplication7 tests1/1
↳ assign27 tests4/4
↳ assign-op7 tests5/7
↳ call41 tests2/8
↳ binop23 tests3/4
↳ literal114 testsN/A
↳ true28 testsN/A
↳ false7 testsN/A
↳ ref41 tests2/3
↳ place100 tests3/4
↳ fn-name14 tests1/3
↳ turbofish30 tests1/1
↳ struct19 tests2/7
borrow_check_fn_ref--
↳ fn-ref43 tests3/4
borrow_check_loop--
↳ loop20 tests2/2
↳ fixed-point23 tests2/2
borrow_check_place_expr--
↳ local103 tests1/1
↳ struct field19 tests2/7
↳ tuple field✗0/4
↳ parens8 tests0/1
↳ deref-ref42 tests0/2
drop_places--
↳ drop_places175 tests0/1
access_permitted--
↳ access_permitted103 tests2/2
access_permitted_by_loans--
↳ access_permitted_by_loans106 tests0/1
access_permitted_by_loan--
↳ borrow of disjoint places41 tests1/1
↳ read-shared is ok2 testsN/A
↳ write-indirect10 tests2/4
↳ loan is dead18 tests1/3
access_kind_for_place_use--
↳ copy3 tests0/1
↳ move100 testsN/A
prove_ty_is_copy--
↳ trait20 tests1/1
prove_place_is_movable--
↳ local89 testsN/A
↳ field7 tests1/2
↳ copy17 tests1/1
prove_ty_is_ref--
↳ ref10 tests0/1
prove_ty_is_rigid--
↳ rigid76 testsN/A
↳ normalize9 tests0/2
prove_assignable--
↳ never-to-b✗0/1
↳ subtype129 tests1/1
loan_cannot_outlive_universal_regions--
↳ loan_not_required_by_universal_regions18 tests1/1
loan_not_required_by_live_places--
↳ loan_not_required_by_live_places18 tests0/1
loan_not_required_by_live_place--
↳ loan is not required by type12 tests1/2
loan_not_required_by_live_place_prefix--
↳ no prefix12 tests0/1
↳ prefix3 tests0/2
loan_not_required_by_parameter--
↳ rigid-ty12 tests1/1
↳ alias-ty RFC 12143 tests1/1
↳ for-all-type✗0/1
↳ universal-variable✗1/1
↳ lifetime9 tests1/1
loan_cannot_outlive--
↳ loan_cannot_outlive9 tests1/1
loan_not_required_by_parameters--
↳ loan_not_required_by_parameters12 tests0/1
verify_universal_outlives--
↳ verify_universal_outlives44 tests0/1
only_assumed_outlives--
↳ existential43 tests0/1
↳ universal lifetime25 tests0/2
can_outlive--
↳ existential target20 tests0/1
↳ universal target3 tests1/3
check_coherence--
↳ check_coherence214 tests0/3
orphan_check--
↳ orphan_check210 tests0/1
orphan_check_neg--
↳ orphan_check_neg3 tests0/1
overlap_check_impl--
↳ same impl210 tests1/1
↳ different trait194 tests1/1
↳ not goal195 tests0/3
↳ inverted1 test0/3
check_free_fn--
↳ check free fn175 tests1/1
check_fn--
↳ check fn200 tests0/1
check_fn_body--
↳ no fn body192 testsN/A
↳ trusted fn body15 testsN/A
↳ expr fn body175 tests1/2
check_trait_impl--
↳ check_trait_impl210 tests0/1
check_neg_trait_impl--
↳ check_neg_trait_impl3 tests1/1
↳ check_neg_trait_impl3 tests0/1
check_safety_matches--
↳ safety matches210 tests1/1
check_trait_impl_item--
↳ fn in impl5 tests1/1
↳ associated ty value194 tests0/1
check_fn_in_impl--
↳ check_fn_in_impl5 tests1/3
check_associated_ty_value--
↳ check_associated_ty_value194 tests0/2
check_drop_impl_always_applicable--
↳ not a Drop impl210 tests0/1
↳ Drop impl is always applicable5 tests2/5
check_all_crates--
↳ check all prefixes214 tests0/1
check_crate--
↳ check crate214 tests3/4
check_crate_item--
↳ trait214 tests1/1
↳ trait impl210 tests2/2
↳ adt59 tests1/1
↳ free fn175 tests1/1
↳ neg trait impl3 tests1/1
↳ test✗0/1
↳ feature gate62 testsN/A
check_trait--
↳ check trait214 tests0/1
check_trait_item--
↳ fn in trait193 tests0/1
↳ associated ty in trait195 tests0/1
check_fn_in_trait--
↳ check fn in trait193 tests0/1
check_associated_ty--
↳ check associated ty195 tests0/1
codegen_function--
↳ function✗0/3
codegen_block--
↳ block✗0/2
↳ labeled-block✗0/2
codegen_stmt--
↳ let-init✗0/3
↳ let-no-init✗0/2
↳ return✗0/1
↳ print✗0/4
↳ if✗0/3
↳ expr✗0/3
↳ loop✗0/3
↳ break✗0/1
↳ continue✗0/2
↳ block✗0/1
↳ exists✗0/2
codegen_expr_into--
↳ parenthesized✗0/1
↳ multiplication✗0/1
↳ literal✗N/A
↳ fn-as-value✗0/2
↳ place✗0/2
↳ true✗N/A
↳ false✗N/A
↳ assign✗0/5
↳ assign-op✗0/5
↳ turbofish✗N/A
↳ call✗0/7
↳ ref✗0/3
↳ struct✗0/4
↳ binop✗0/6
resolve_place--
↳ resolve✗0/1
resolve_rigid--
↳ resolve✗0/1
type_expr--
↳ type_expr✗0/1
may_be_remote--
↳ may be defined downstream✗0/1
↳ may be added by upstream in a minor release✗0/1
may_be_downstream_trait_ref--
↳ may_be_downstream_trait_ref✗0/2
may_be_downstream_parameter--
↳ type variable✗N/A
↳ via normalize✗0/3
↳ fundamental rigid type✗0/3
may_contain_downstream_type--
↳ existential variable✗N/A
↳ rigid type parameter✗0/2
↳ via normalize✗0/2
↳ forall✗0/1
normalizes_to_not_downstream--
↳ ambiguous✗0/2
is_local_trait_ref--
↳ local trait205 tests1/1
↳ local parameter14 tests2/3
is_not_downstream--
↳ lifetime2 testsN/A
↳ rigid4 tests1/1
↳ fundamental type2 tests1/2
↳ via normalize1 test1/2
↳ type variable✗N/A
is_local_parameter--
↳ local parameter1 test2/2
↳ fundamental rigid type2 tests2/2
↳ local rigid type13 tests1/1
↳ existential variable1 testN/A
prove_after--
↳ prove_after237 tests1/1
prove_const_has_type-no applicable rule observed
↳ rigid constant4 testsN/A
↳ block✗0/1
prove_eq--
↳ symmetric220 tests1/1
↳ rigid201 tests1/2
↳ alias1 test1/2
↳ existential223 tests1/1
↳ normalize-l26 tests2/2
prove_existential_var_eq--
↳ existential-nonvar56 tests2/2
↳ existential-existential21 testsN/A
↳ existential-universal214 tests1/1
prove_normalize-no applicable rule observed
↳ normalize-via-assumption4 tests1/2
↳ normalize-via-impl55 tests1/2
prove_normalize_via-no applicable rule observed
↳ var-axiom-l✗0/2
↳ var-axiom-r✗0/2
↳ axiom-l3 tests1/3
↳ axiom-r1 test0/3
↳ forall✗0/1
↳ implies✗0/2
prove_syntactically_eq--
↳ symmetric1 test1/1
↳ rigid✗0/2
↳ alias1 test1/2
↳ existential-nonvar1 test1/1
prove_outlives-no applicable rule observed
↳ static outlives everything✗N/A
↳ anything outlives erased✗N/A
↳ erased outlives static✗N/A
↳ rigid types55 tests0/1
↳ outlive through assumption195 tests0/1
↳ anything can be pending29 tests0/1
prove_predicate--
↳ forall14 tests0/1
↳ implies4 tests1/1
↳ assumption23 tests1/2
↳ positive impl219 tests0/2
↳ coherence / remote impl✗0/2
↳ negative impl3 tests1/2
↳ alias eq1 test0/1
↳ trait implied bound1 test1/2
↳ eq231 tests1/1
↳ subtype134 tests1/1
↳ trait well formed30 tests2/2
↳ trait ref is local211 tests1/1
↳ outlives195 tests1/1
↳ parameter well formed204 tests1/1
↳ const has ty4 tests2/2
prove_predicate_list--
↳ none238 testsN/A
↳ some237 tests2/2
prove_sub--
↳ normalize-l29 tests1/2
↳ normalize-r12 tests1/2
↳ rigid33 tests0/2
↳ lifetime => outlives29 tests0/1
prove_via-no applicable rule observed
↳ predicate-congruence-axiom16 tests1/3
↳ relation-axiom8 tests0/3
↳ forall2 tests0/1
↳ implies✗0/2
prove_wf--
↳ universal variables206 testsN/A
↳ references192 tests1/3
↳ raw-pointers✗0/2
↳ tuples200 tests0/1
↳ integers and booleans131 tests0/1
↳ ADT46 tests1/3
↳ static lifetime1 testN/A
↳ scalar constants are always wf1 testN/A
↳ aliases5 tests0/1

How to read this page