error[E0505]: cannot move out of `x` because it is borrowed --> $DIR/associated-types-outlives.rs:22:14 | LL | F: for<'a> FnOnce(>::Bar)>(x: T, f: F) { | - binding `x` declared here ... LL | 's: loop { y = denormalise(&x); break } | -- borrow of `x` occurs here LL | drop(x); | ^ move out of `x` occurs here LL | return f(y); | - borrow later used here error: aborting due to previous error For more information about this error, try `rustc --explain E0505`.