| use std::fmt; | |
| struct Number { | |
| n: i64 | |
| } | |
| impl fmt::Display for Number { | |
| fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { | |
| write!(f, "{}", self.n) | |
| } | |
| } | |
| struct List { | |
| list: Vec<Box<dyn ToString + 'static>> } | |
| impl List { | |
| fn push(&mut self, n: Box<dyn ToString + 'static>) { | |
| self.list.push(n); | |
| } | |
| } | |
| fn main() { | |
| let n: Box<_> = Number { n: 42 }.into(); | |
| let mut l: Box<_> = List { list: Vec::new() }.into(); | |
| l.push(n); | |
| let x = n.to_string(); | |
| //~^ ERROR: borrow of moved value: `n` | |
| } |