File tree Expand file tree Collapse file tree 3 files changed +18
-15
lines changed Expand file tree Collapse file tree 3 files changed +18
-15
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: 61c81bf00cc8f8a87940fce3ba7be0bfd66cf04f
8
+ refs/heads/try2: 653f57af2085534ced338bd146e2528b81c9fd11
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 @@ -84,6 +84,20 @@ fn fu_move_after_fu_move() {
84
84
85
85
// The following functions aren't yet accepted, but they should be.
86
86
87
+ fn move_after_borrow_correct ( ) {
88
+ let x = A { a : 1 , b : box 2 } ;
89
+ let p = & x. a ;
90
+ drop ( x. b ) ; //~ ERROR cannot move out of `x.b` because it is borrowed
91
+ drop ( * p) ;
92
+ }
93
+
94
+ fn fu_move_after_borrow_correct ( ) {
95
+ let x = A { a : 1 , b : box 2 } ;
96
+ let p = & x. a ;
97
+ let _y = A { a : 3 , .. x } ; //~ ERROR cannot move out of `x.b` because it is borrowed
98
+ drop ( * p) ;
99
+ }
100
+
87
101
fn copy_after_field_assign_after_uninit ( ) {
88
102
let mut x: A ;
89
103
x. a = 1 ;
@@ -117,6 +131,9 @@ fn main() {
117
131
fu_move_after_move ( ) ;
118
132
fu_move_after_fu_move ( ) ;
119
133
134
+ move_after_borrow_correct ( ) ;
135
+ fu_move_after_borrow_correct ( ) ;
136
+
120
137
copy_after_field_assign_after_uninit ( ) ;
121
138
borrow_after_field_assign_after_uninit ( ) ;
122
139
move_after_field_assign_after_uninit ( ) ;
Original file line number Diff line number Diff line change @@ -73,18 +73,6 @@ fn borrow_after_fu_move() {
73
73
borrow ( & x. a ) ;
74
74
}
75
75
76
- fn move_after_borrow ( ) {
77
- let x = A { a : 1 , b : box 2 } ;
78
- borrow ( & x. a ) ;
79
- drop ( x. b ) ;
80
- }
81
-
82
- fn fu_move_after_borrow ( ) {
83
- let x = A { a : 1 , b : box 2 } ;
84
- borrow ( & x. a ) ;
85
- let _y = A { a : 3 , .. x } ;
86
- }
87
-
88
76
fn mut_borrow_after_mut_borrow ( ) {
89
77
let mut x = A { a : 1 , b : box 2 } ;
90
78
let y = & mut x. a ;
@@ -232,8 +220,6 @@ fn main() {
232
220
233
221
borrow_after_move ( ) ;
234
222
borrow_after_fu_move ( ) ;
235
- move_after_borrow ( ) ;
236
- fu_move_after_borrow ( ) ;
237
223
mut_borrow_after_mut_borrow ( ) ;
238
224
239
225
move_after_move ( ) ;
You can’t perform that action at this time.
0 commit comments