2014-02-16 00:00:38 +01:00
|
|
|
// verify that an error is raised when trying to move out of a
|
|
|
|
// borrowed path.
|
|
|
|
|
2018-08-15 01:16:05 +02:00
|
|
|
|
|
|
|
|
2021-08-25 02:39:40 +02:00
|
|
|
|
2015-01-07 18:53:58 -08:00
|
|
|
|
2014-02-16 00:00:38 +01:00
|
|
|
fn main() {
|
2021-08-25 02:39:40 +02:00
|
|
|
let a: Box<Box<_>> = Box::new(Box::new(2));
|
2014-02-16 00:00:38 +01:00
|
|
|
let b = &a;
|
|
|
|
|
|
|
|
let z = *a; //~ ERROR: cannot move out of `*a` because it is borrowed
|
2018-08-15 01:16:05 +02:00
|
|
|
b.use_ref();
|
2014-02-16 00:00:38 +01:00
|
|
|
}
|
2018-08-15 01:16:05 +02:00
|
|
|
|
|
|
|
trait Fake { fn use_mut(&mut self) { } fn use_ref(&self) { } }
|
|
|
|
impl<T> Fake for T { }
|