Judgment access_kind_for_place_use
judgment_fn! {
/// Determine whether evaluating a place reads from it or moves from it.
/// Copy places behave like reads for loan checking everything else
/// is treated as a move so overlapping live loans can reject it.
fn access_kind_for_place_use(
env: TypeckEnv,
assumptions: Predicates,
state: FlowState,
place: TypedPlaceExpr,
) => (AccessKind, FlowState) {
/* rules omitted */
}
}
Source: crates/formality-rust/src/check/borrow_check/nll.rs:996
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.
copy| Line | Coverage | Source |
|---|---|---|
| 1009 | ✗ | (prove_ty_is_copy(env, assumptions, state, &place.ty) => state) |
| ──────── ("copy") | ||
| 1011 | 3 | (access_kind_for_place_use(_env, _assumptions, state, _place) => (AccessKind::Read, state)) |
move| Line | Coverage | Source |
|---|---|---|
| ──────── ("move") | ||
| 1016 | 100 | (access_kind_for_place_use(_env, _assumptions, state, _place) => (AccessKind::Move, state)) |