Test foo
Source location: tests/borrowck.rs:638
fn foo() -> Datum {
exists<'r0, 'r1> {
let x: Datum = Datum { value: 0_u32 };
let r: &'r0 Datum = &'r1 x;
let y: Datum = *r;
return y;
}
}
Rules proved (0)
This test records no positive coverage.
Premises failed (26)
The last column links to the premise’s page when the judgment view counts this failure against that premise. It does not when the premise is read as infallible, or when the failure was blamed inside a multi-line premise that carries no record on its own first line.
| Judgment | Rule | Premise | All tests of this premise |
|---|---|---|---|
| borrow_check | borrow_check | borrow_check_block(env, assumptions, state, bloc… (line 138) | 60 tests |
| borrow_check_block | basic block | for_all(i in 0..stmts.len()) with(env, state) (b… (line 159, blamed at line 160) | not counted by the judgment view |
| borrow_check_statement | let | for_all(init in init.into_iter()) with (state) /… (line 192, blamed at line 194) | not counted by the judgment view |
| borrow_check_statement | exists | borrow_check_block(env, assumptions_body, state,… (line 300) | 21 tests |
| borrow_check_statement | exists | borrow_check_block(env, assumptions_body, state,… (line 311) | 23 tests |
| borrow_check_statement | exists | borrow_check_block(env, assumptions_body, state,… (line 327) | 23 tests |
| borrow_check_expr_has_ty | block | borrow_check_expr(env, assumptions, state, expr,… (line 364) | 28 tests |
| borrow_check_expr | place | prove_place_is_movable(env, assumptions, state, … (line 506) | 3 tests |
| prove_ty_is_copy | trait | env.prove_goal(assumptions, &state, goal) => sta… (line 968) | 3 tests |
| prove_place_is_movable | copy | prove_ty_is_copy(env, assumptions, state, &place… (line 1013) | 3 tests |
| check_free_fn | check free fn | check_fn(program, Env::default(), Wcs::t(), f, c… (line 24) | 61 tests |
| check_fn | check fn | check_fn_body(program, env, assumptions, body, i… (line 55) | 60 tests |
| check_fn_body | expr fn body | borrow_check(typeck_env, assumptions, initial_st… (line 90) | 60 tests |
| check_all_crates | check all prefixes | for_all(i in 0..crates.len()) (let program = cra… (line 51, blamed at line 53) | not counted by the judgment view |
| check_crate | check crate | for_all(item in &c.items) (check_crate_item(prog… (line 72, blamed at line 73) | not counted by the judgment view |
| check_crate_item | free fn | check_free_fn(program, f, crate_id) => () (line 206) | 61 tests |
| prove_after | prove_after | prove(decls, c1.env(), assumptions, goal) => c2 (line 19) | 18 tests |
| prove_eq | symmetric | prove_eq(decls, env, assumptions, r, l) => env_c (line 38) | 15 tests |
| prove_eq | normalize-l | prove_normalize(decls, env, assumptions, x) => C… (line 68) | 15 tests |
| prove_eq | normalize-l | prove_after(decls, c, assumptions, eq(y, z)) => … (line 69) | 3 tests |
| prove_normalize | normalize-via-assumption | prove_normalize_via(decls, env, assumptions, a, … (line 32) | 10 tests |
| prove_wc | assumption | prove_via(decls, env, assumptions, a, goal) => c (line 48) | 21 tests |
| prove_wc | positive impl | prove(decls, env, co_assumptions, Wcs::all_eq(&t… (line 73) | 7 tests |
| prove_wc | trait implied bound | ti in decls.trait_invariants() (line 109) | 14 tests |
| prove_wc | eq | prove_eq(decls, env, assumptions, a, b) => c (line 119) | 15 tests |
| prove_wc_list | some | prove_wc(decls, env, assumptions, wc0) => c (line 26) | 42 tests |
Proof trees
Failed proof tree
check_all_crates failedmod.rs:41args
rule "check all prefixes"mod.rs:53check_crate failedmod.rs:60args
rule "check crate"mod.rs:73check_crate_item failedmod.rs:178rule "free fn"mod.rs:206check_free_fn failedfns.rs:14args
rule "check free fn"fns.rs:24check_fn failedfns.rs:31args
rule "check fn"fns.rs:55check_fn_body failedfns.rs:62args
rule "expr fn body"fns.rs:90borrow_check failednll.rs:127args
rule "borrow_check"nll.rs:138borrow_check_block failednll.rs:145rule "basic block"nll.rs:160borrow_check_statement failednll.rs:177args
rule "exists"nll.rs:300borrow_check_block failednll.rs:145args
rule "basic block"nll.rs:160borrow_check_statement failednll.rs:177args
rule "let"nll.rs:194borrow_check_expr_has_ty failednll.rs:351args
rule "block"nll.rs:364borrow_check_expr failednll.rs:372args
rule "place"nll.rs:506prove_place_is_movable failednll.rs:975args
rule "copy"nll.rs:1013prove_ty_is_copy failednll.rs:956rule "trait"nll.rs:968prove failedfunction.rs:250args
rulefunction.rs:250prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:26prove_wc failedprove_wc.rs:21args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "positive impl"prove_wc.rs:73prove failedprove_wc.rs:73args
ruleprove_wc.rs:73prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:26prove_wc failedprove_wc.rs:21args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "eq"prove_wc.rs:119prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:69prove_after failedprove_after.rs:8args
rule "prove_after"prove_after.rs:19prove failedprove_after.rs:19args
ruleprove_after.rs:19prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:26prove_wc failedprove_wc.rs:21args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "eq"prove_wc.rs:119prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:18args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "symmetric"prove_eq.rs:38prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:18args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-l"prove_eq.rs:69prove_after failedprove_after.rs:8args
rule "prove_after"prove_after.rs:19prove failedprove_after.rs:19args
ruleprove_after.rs:19prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:26prove_wc failedprove_wc.rs:21args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "eq"prove_wc.rs:119prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:18args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "symmetric"prove_eq.rs:38prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:18args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "symmetric"prove_eq.rs:38prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:18args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "positive impl"prove_wc.rs:73prove failedprove_wc.rs:73args
ruleprove_wc.rs:73prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:26prove_wc failedprove_wc.rs:21args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "eq"prove_wc.rs:119prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:69prove_after failedprove_after.rs:8args
rule "prove_after"prove_after.rs:19prove failedprove_after.rs:19args
ruleprove_after.rs:19prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:26prove_wc failedprove_wc.rs:21args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "eq"prove_wc.rs:119prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:18args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "symmetric"prove_eq.rs:38prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:18args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-l"prove_eq.rs:69prove_after failedprove_after.rs:8args
rule "prove_after"prove_after.rs:19prove failedprove_after.rs:19args
ruleprove_after.rs:19prove_wc_list failedprove_wc_list.rs:8args
rule "some"prove_wc_list.rs:26prove_wc failedprove_wc.rs:21args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "assumption"prove_wc.rs:48prove_via failedprove_via.rs:8args
rule "eq"prove_wc.rs:119prove_eq failedprove_eq.rs:23args
rule "normalize-l"prove_eq.rs:68prove_normalize failedprove_normalize.rs:18args
rule "normalize-via-assumption"prove_normalize.rs:32prove_normalize_via failedprove_normalize.rs:54args
rule "normalize-via-assumption"prove_normalize.rs:32