File tree Expand file tree Collapse file tree 2 files changed +65
-1
lines changed
branches/snap-stage3/src/test/compile-fail Expand file tree Collapse file tree 2 files changed +65
-1
lines changed Original file line number Diff line number Diff line change 1
1
---
2
2
refs/heads/master: bee4e6adac17f87b1cdc26ab69f8c0f5d82575a3
3
3
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4
- refs/heads/snap-stage3: 74eb4b4b5713be0d80b666f0032d7d7c111db368
4
+ refs/heads/snap-stage3: f1542a6a7da088f99bfe2963d29e6ea4b451b432
5
5
refs/heads/try: 009d898a9422ac04c1aa60c0e9aff3abc5fa4672
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
Original file line number Diff line number Diff line change
1
+ // Copyright 2014 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:: task;
12
+
13
+ fn borrow < T > ( _: & T ) { }
14
+
15
+ fn different_vars_after_borrows ( ) {
16
+ let x1 = box 1 ;
17
+ let p1 = & x1;
18
+ let x2 = box 2 ;
19
+ let p2 = & x2;
20
+ task:: spawn ( proc ( ) {
21
+ drop ( x1) ; //~ ERROR cannot move `x1` into closure because it is borrowed
22
+ drop ( x2) ; //~ ERROR cannot move `x2` into closure because it is borrowed
23
+ } ) ;
24
+ borrow ( & * p1) ;
25
+ borrow ( & * p2) ;
26
+ }
27
+
28
+ fn different_vars_after_moves ( ) {
29
+ let x1 = box 1 ;
30
+ drop ( x1) ;
31
+ let x2 = box 2 ;
32
+ drop ( x2) ;
33
+ task:: spawn ( proc ( ) {
34
+ drop ( x1) ; //~ ERROR capture of moved value: `x1`
35
+ drop ( x2) ; //~ ERROR capture of moved value: `x2`
36
+ } ) ;
37
+ }
38
+
39
+ fn same_var_after_borrow ( ) {
40
+ let x = box 1 ;
41
+ let p = & x;
42
+ task:: spawn ( proc ( ) {
43
+ drop ( x) ; //~ ERROR cannot move `x` into closure because it is borrowed
44
+ drop ( x) ; //~ ERROR use of moved value: `x`
45
+ } ) ;
46
+ borrow ( & * p) ;
47
+ }
48
+
49
+ fn same_var_after_move ( ) {
50
+ let x = box 1 ;
51
+ drop ( x) ;
52
+ task:: spawn ( proc ( ) {
53
+ drop ( x) ; //~ ERROR capture of moved value: `x`
54
+ drop ( x) ; //~ ERROR use of moved value: `x`
55
+ } ) ;
56
+ }
57
+
58
+ fn main ( ) {
59
+ different_vars_after_borrows ( ) ;
60
+ different_vars_after_moves ( ) ;
61
+ same_var_after_borrow ( ) ;
62
+ same_var_after_move ( ) ;
63
+ }
64
+
You can’t perform that action at this time.
0 commit comments