error[E0500]: closure requires unique access to `x` but it is already borrowed --> $DIR/issue-27282-mutate-before-diverging-arm-1.rs:33:14 | LL | match x { | - borrow occurs here ... LL | (|| { *x = None; drop(force_fn_once); })(); | ^^ - second borrow occurs due to use of `x` in closure | | | closure construction occurs here ... LL | &mut Some(&a) if { // this binds to garbage if we've corrupted discriminant | ------------- borrow later used here error: aborting due to previous error For more information about this error, try `rustc --explain E0500`.