error[E0503]: cannot use `self.cx` because it was mutably borrowed --> $DIR/two-phase-surprise-no-conflict.rs:40:13 | LL | let _mut_borrow = &mut *self; | ----- borrow of `*self` occurs here LL | let _access = self.cx; | ^^^^^^^ use of borrowed `*self` error[E0502]: cannot borrow `*self.cx_mut` as immutable because `*self` is also borrowed as mutable --> $DIR/two-phase-surprise-no-conflict.rs:79:33 | LL | self.hash_expr(&self.cx_mut.body(eid).value); | ---- ^^^^^^^^^^^ - mutable borrow ends here | | | | | immutable borrow occurs here | mutable borrow occurs here error[E0502]: cannot borrow `reg.sess_mut` as immutable because `*reg` is also borrowed as mutable --> $DIR/two-phase-surprise-no-conflict.rs:131:52 | LL | reg.register_static(Box::new(TrivialPass::new(®.sess_mut))); | --- ^^^^^^^^^^^^ - mutable borrow ends here | | | | mutable borrow occurs here immutable borrow occurs here error[E0502]: cannot borrow `reg.sess_mut` as immutable because `*reg` is also borrowed as mutable --> $DIR/two-phase-surprise-no-conflict.rs:135:51 | LL | reg.register_bound(Box::new(TrivialPass::new(®.sess_mut))); | --- ^^^^^^^^^^^^ - mutable borrow ends here | | | | mutable borrow occurs here immutable borrow occurs here error[E0502]: cannot borrow `reg.sess_mut` as immutable because `*reg` is also borrowed as mutable --> $DIR/two-phase-surprise-no-conflict.rs:139:50 | LL | reg.register_univ(Box::new(TrivialPass::new(®.sess_mut))); | --- ^^^^^^^^^^^^ - mutable borrow ends here | | | | mutable borrow occurs here immutable borrow occurs here error[E0502]: cannot borrow `reg.sess_mut` as immutable because `*reg` is also borrowed as mutable --> $DIR/two-phase-surprise-no-conflict.rs:143:41 | LL | reg.register_ref(&TrivialPass::new(®.sess_mut)); | --- ^^^^^^^^^^^^ - mutable borrow ends here | | | | mutable borrow occurs here immutable borrow occurs here error[E0499]: cannot borrow `reg.sess_mut` as mutable more than once at a time --> $DIR/two-phase-surprise-no-conflict.rs:151:56 | LL | reg.register_static(Box::new(TrivialPass::new(&mut reg.sess_mut))); | --- ^^^^^^^^^^^^ - first borrow ends here | | | | first mutable borrow occurs here second mutable borrow occurs here error[E0499]: cannot borrow `reg.sess_mut` as mutable more than once at a time --> $DIR/two-phase-surprise-no-conflict.rs:156:59 | LL | reg.register_bound(Box::new(TrivialPass::new_mut(&mut reg.sess_mut))); | --- ^^^^^^^^^^^^ - first borrow ends here | | | | first mutable borrow occurs here second mutable borrow occurs here error[E0499]: cannot borrow `reg.sess_mut` as mutable more than once at a time --> $DIR/two-phase-surprise-no-conflict.rs:161:58 | LL | reg.register_univ(Box::new(TrivialPass::new_mut(&mut reg.sess_mut))); | --- ^^^^^^^^^^^^ - first borrow ends here | | | | first mutable borrow occurs here second mutable borrow occurs here error[E0499]: cannot borrow `reg.sess_mut` as mutable more than once at a time --> $DIR/two-phase-surprise-no-conflict.rs:166:49 | LL | reg.register_ref(&TrivialPass::new_mut(&mut reg.sess_mut)); | --- ^^^^^^^^^^^^ - first borrow ends here | | | | first mutable borrow occurs here second mutable borrow occurs here error[E0502]: cannot borrow `reg.sess_mut` as immutable because `*reg` is also borrowed as mutable --> $DIR/two-phase-surprise-no-conflict.rs:178:51 | LL | reg.register_bound(Box::new(CapturePass::new(®.sess_mut))); | --- ^^^^^^^^^^^^ - mutable borrow ends here | | | | mutable borrow occurs here immutable borrow occurs here error[E0502]: cannot borrow `reg.sess_mut` as immutable because `*reg` is also borrowed as mutable --> $DIR/two-phase-surprise-no-conflict.rs:183:50 | LL | reg.register_univ(Box::new(CapturePass::new(®.sess_mut))); | --- ^^^^^^^^^^^^ - mutable borrow ends here | | | | mutable borrow occurs here immutable borrow occurs here error[E0502]: cannot borrow `reg.sess_mut` as immutable because `*reg` is also borrowed as mutable --> $DIR/two-phase-surprise-no-conflict.rs:188:41 | LL | reg.register_ref(&CapturePass::new(®.sess_mut)); | --- ^^^^^^^^^^^^ - mutable borrow ends here | | | | mutable borrow occurs here immutable borrow occurs here error[E0499]: cannot borrow `reg.sess_mut` as mutable more than once at a time --> $DIR/two-phase-surprise-no-conflict.rs:200:59 | LL | reg.register_bound(Box::new(CapturePass::new_mut(&mut reg.sess_mut))); | --- ^^^^^^^^^^^^ - first borrow ends here | | | | first mutable borrow occurs here second mutable borrow occurs here error[E0499]: cannot borrow `reg.sess_mut` as mutable more than once at a time --> $DIR/two-phase-surprise-no-conflict.rs:206:58 | LL | reg.register_univ(Box::new(CapturePass::new_mut(&mut reg.sess_mut))); | --- ^^^^^^^^^^^^ - first borrow ends here | | | | first mutable borrow occurs here second mutable borrow occurs here error[E0499]: cannot borrow `reg.sess_mut` as mutable more than once at a time --> $DIR/two-phase-surprise-no-conflict.rs:212:49 | LL | reg.register_ref(&CapturePass::new_mut(&mut reg.sess_mut)); | --- ^^^^^^^^^^^^ - first borrow ends here | | | | first mutable borrow occurs here second mutable borrow occurs here error: aborting due to 16 previous errors Some errors occurred: E0499, E0502, E0503. For more information about an error, try `rustc --explain E0499`.