Skip to content

Instantly share code, notes, and snippets.

@pnkfelix
Created February 21, 2018 13:19
Show Gist options
  • Save pnkfelix/4d34cac15230d25cfca89a8777b9c088 to your computer and use it in GitHub Desktop.
Save pnkfelix/4d34cac15230d25cfca89a8777b9c088 to your computer and use it in GitHub Desktop.
DEBUG:<unknown>: MirBorrowckCtxt::process_statement(bb7[0], _3 = &mut (*_4)): borrows in effect: [&mut _1, &mut _1, &mut _1@active] borrows generated: [&mut _1, &mut (*_4)] inits: [_1, _4, _5, _6] uninits: [_0, _2, _3, _7, _8] move_out: [mp8@bb3[3]] ever_init: [[email protected]:8:19: 8:31 (Deep), [email protected]:9:11: 9:13 (Deep), [email protected]:9:5: 12:6 (Deep), [email protected]:10:15: 10:23 (Deep), [email protected]:11:14: 11:27 (Deep)]
DEBUG:<unknown>: check_access_permissions(_1, Activation(MutableBorrow(Mut { allow_two_phase_borrow: false }), bw0), No)
DEBUG:<unknown>: places_conflict(_1,_1,Deep)
DEBUG:<unknown>: places_conflict: components [_1] / [_1]
DEBUG:<unknown>: places_conflict: Some(_1) vs. Some(_1)
DEBUG:<unknown>: place_element_conflict: DISJOINT-OR-EQ-LOCAL
DEBUG:<unknown>: places_conflict: None vs. None
DEBUG:<unknown>: places_conflict: full borrow, CONFLICT
DEBUG:<unknown>: each_borrow_involving_path: ra0 @ BorrowData { location: bb2[0], kind: Mut { allow_two_phase_borrow: false }, region: ReScope(Node(ItemLocalId(15))), borrowed_place: _1, assigned_place: _4 } vs. _1/Deep
DEBUG:<unknown>: check_access_for_conflict place_span: (_1, issue-48070-b.rs:9:5: 12:6) sd: Deep rw: Activation(MutableBorrow(Mut { allow_two_phase_borrow: false }), bw0) skipping (ra0, BorrowData { location: bb2[0], kind: Mut { allow_two_phase_borrow: false }, region: ReScope(Node(ItemLocalId(15))), borrowed_place: _1, assigned_place: _4 }) b/c activation of same borrow_index: bw0
DEBUG:<unknown>: places_conflict(_1,_1,Deep)
DEBUG:<unknown>: places_conflict: components [_1] / [_1]
DEBUG:<unknown>: places_conflict: Some(_1) vs. Some(_1)
DEBUG:<unknown>: place_element_conflict: DISJOINT-OR-EQ-LOCAL
DEBUG:<unknown>: places_conflict: None vs. None
DEBUG:<unknown>: places_conflict: full borrow, CONFLICT
DEBUG:<unknown>: each_borrow_involving_path: ra2 @ BorrowData { location: bb3[2], kind: Mut { allow_two_phase_borrow: true }, region: ReScope(Node(ItemLocalId(15))), borrowed_place: _1, assigned_place: _8 } vs. _1/Deep
DEBUG:<unknown>: observing check_place for activation of borrow_index: bw0
error[E0499]: cannot borrow `foo` as mutable more than once at a time
--> issue-48070-b.rs:9:5
|
9 | / match 22 {
10 | | 22 => &mut foo, // borrow B1
11 | | _ => foo.twaddle(), // borrow B2
| | --- first mutable borrow occurs here
12 | | }.emit();
| | ^ - first borrow ends here
| |_____|
| second mutable borrow occurs here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment