]> git.lizzy.rs Git - rust.git/blob - src/test/compile-fail/issue-42796.rs
b07c23c3fc72da5ec4721be552483a4e80178305
[rust.git] / src / test / compile-fail / issue-42796.rs
1 // Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 pub trait Mirror<Smoke> {
12     type Image;
13 }
14
15 impl<T, Smoke> Mirror<Smoke> for T {
16     type Image = T;
17 }
18
19 pub fn poison<S>(victim: String) where <String as Mirror<S>>::Image: Copy {
20     loop { drop(victim); }
21 }
22
23 fn main() {
24     let s = "Hello!".to_owned();
25     let mut s_copy = s;
26     s_copy.push_str("World!");
27     "0wned!".to_owned();
28     println!("{}", s); //~ ERROR use of moved value
29 }