diff options
| author | bors <bors@rust-lang.org> | 2022-08-16 11:54:55 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-08-16 11:54:55 +0000 |
| commit | 793f198b9d8c276f09ac30dbd1278ad0e1320839 (patch) | |
| tree | d81e955a18ba8e557610a4a98ac76fe72c9261c0 /tests/mir-opt/lower_array_len.array_len.NormalizeArrayLen.diff | |
| parent | a000764fb9a892d00a77207323b856ef07d44d36 (diff) | |
| parent | db43ee5714900900a52ad5050b77993288472ce2 (diff) | |
| download | rust-793f198b9d8c276f09ac30dbd1278ad0e1320839.tar.gz rust-793f198b9d8c276f09ac30dbd1278ad0e1320839.zip | |
Auto merge of #2489 - RalfJung:srw-merging, r=saethlin
add test that we do not merge neighboring SRW
Turns out that interior_mut2 also already tests this, but that also involves `UnsafeCell` so the new test still seems more clear. Basically the new test is the same as the old except that it uses raw pointers rather than `&UnsafeCell`. (When the old test was written, raw pointers were still untagged, so no such test would have been possible.)
I verified that both of these fail when we remove mutable references rather than disabling them.
Here is the patch I used for that:
<details>
```diff
diff --git a/Cargo.toml b/Cargo.toml
index 208b3a76..f9d1b0ac 100644
--- a/Cargo.toml
+++ b/Cargo.toml
`@@` -53,7 +53,7 `@@` name = "compiletest"
harness = false
[features]
-default = ["stack-cache"]
+default = []
stack-cache = []
# Be aware that this file is inside a workspace when used via the
diff --git a/src/lib.rs b/src/lib.rs
index ba337f28..2a3066f4 100644
--- a/src/lib.rs
+++ b/src/lib.rs
`@@` -9,6 +9,7 `@@`
#![feature(is_some_with)]
#![feature(nonzero_ops)]
#![feature(local_key_cell_methods)]
+#![feature(drain_filter)]
// Configure clippy and other lints
#![allow(
clippy::collapsible_else_if,
diff --git a/src/stacked_borrows/stack.rs b/src/stacked_borrows/stack.rs
index 4a9a13d3..37246df7 100644
--- a/src/stacked_borrows/stack.rs
+++ b/src/stacked_borrows/stack.rs
`@@` -351,6 +351,9 `@@` impl<'tcx> Stack {
#[cfg(all(feature = "stack-cache", debug_assertions))]
self.verify_cache_consistency();
+ // HACK -- now just delete all disabled things.
+ self.borrows.drain_filter(|b| matches!(b.perm(), Permission::Disabled));
+
Ok(())
}
```
</details>
r? `@saethlin`
Diffstat (limited to 'tests/mir-opt/lower_array_len.array_len.NormalizeArrayLen.diff')
0 files changed, 0 insertions, 0 deletions
