summaryrefslogtreecommitdiffstats
path: root/src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs')
-rw-r--r--src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs b/src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs
new file mode 100644
index 000000000..27e599c6c
--- /dev/null
+++ b/src/test/ui/borrowck/two-phase-reservation-sharing-interference-2.rs
@@ -0,0 +1,29 @@
+// Test for #56254. The last example originally failed with the ast checker, was
+// accidentally allowed under migrate/nll, then linted against in migrate mode
+// but disallowed under NLL. Now, we accept it everywhere.
+
+//ignore-compare-mode-polonius
+
+fn double_conflicts() {
+ let mut v = vec![0, 1, 2];
+ let shared = &v;
+
+ v.extend(shared);
+ //~^ ERROR cannot borrow `v` as mutable
+}
+
+fn activation_conflict() {
+ let mut v = vec![0, 1, 2];
+
+ v.extend(&v);
+ //~^ ERROR cannot borrow `v` as mutable
+}
+
+fn reservation_allowed() {
+ let mut v = vec![0, 1, 2];
+ let shared = &v;
+
+ v.push(shared.len());
+}
+
+fn main() {}