File tree Expand file tree Collapse file tree 2 files changed +65
-1
lines changed
branches/try2/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 @@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
5
5
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
- refs/heads/try2: 74eb4b4b5713be0d80b666f0032d7d7c111db368
8
+ refs/heads/try2: f1542a6a7da088f99bfe2963d29e6ea4b451b432
9
9
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
10
10
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
11
11
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
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