]> git.lizzy.rs Git - rust.git/blob - src/test/compile-fail/liveness-use-after-send.rs
Auto merge of #22541 - Manishearth:rollup, r=Gankro
[rust.git] / src / test / compile-fail / liveness-use-after-send.rs
1 // Copyright 2012 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 use std::marker;
12
13 fn send<T:Send + std::fmt::Debug>(ch: _chan<T>, data: T) {
14     println!("{:?}", ch);
15     println!("{:?}", data);
16     panic!();
17 }
18
19 #[derive(Debug)]
20 struct _chan<T>(isize, marker::PhantomData<T>);
21
22 // Tests that "log(debug, message);" is flagged as using
23 // message after the send deinitializes it
24 fn test00_start(ch: _chan<Box<isize>>, message: Box<isize>, _count: Box<isize>) {
25     send(ch, message);
26     println!("{}", message); //~ ERROR use of moved value: `message`
27 }
28
29 fn main() { panic!(); }