Skip to content

Commit 184e6d9

Browse files
author
Cameron Zwarich
committed
---
yaml --- r: 152357 b: refs/heads/try2 c: 653f57a h: refs/heads/master i: 152355: 39dc182 v: v3
1 parent 63f0608 commit 184e6d9

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 61c81bf00cc8f8a87940fce3ba7be0bfd66cf04f
8+
refs/heads/try2: 653f57af2085534ced338bd146e2528b81c9fd11
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/test/compile-fail/borrowck-field-sensitivity.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,20 @@ fn fu_move_after_fu_move() {
8484

8585
// The following functions aren't yet accepted, but they should be.
8686

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+
87101
fn copy_after_field_assign_after_uninit() {
88102
let mut x: A;
89103
x.a = 1;
@@ -117,6 +131,9 @@ fn main() {
117131
fu_move_after_move();
118132
fu_move_after_fu_move();
119133

134+
move_after_borrow_correct();
135+
fu_move_after_borrow_correct();
136+
120137
copy_after_field_assign_after_uninit();
121138
borrow_after_field_assign_after_uninit();
122139
move_after_field_assign_after_uninit();

branches/try2/src/test/run-pass/borrowck-field-sensitivity.rs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -73,18 +73,6 @@ fn borrow_after_fu_move() {
7373
borrow(&x.a);
7474
}
7575

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-
8876
fn mut_borrow_after_mut_borrow() {
8977
let mut x = A { a: 1, b: box 2 };
9078
let y = &mut x.a;
@@ -232,8 +220,6 @@ fn main() {
232220

233221
borrow_after_move();
234222
borrow_after_fu_move();
235-
move_after_borrow();
236-
fu_move_after_borrow();
237223
mut_borrow_after_mut_borrow();
238224

239225
move_after_move();

0 commit comments

Comments
 (0)