Skip to content

Commit 2c98eda

Browse files
authored
Rollup merge of #94553 - lcnr:add-tests, r=Dylan-DPC
add tests for #94502 cc #94552
2 parents 297273c + dad81b6 commit 2c98eda

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

src/test/ui/nll/lint-no-err.rs

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// check-pass
2+
3+
// mir borrowck previously incorrectly set `tainted_by_errors`
4+
// when buffering lints, which resulted in ICE later on,
5+
// see #94502.
6+
7+
// Errors with `nll` which is already tested in enough other tests,
8+
// so we ignore it here.
9+
//
10+
// ignore-compare-mode-nll
11+
12+
struct Repro;
13+
impl Repro {
14+
fn get(&self) -> &i32 {
15+
&3
16+
}
17+
18+
fn insert(&mut self, _: i32) {}
19+
}
20+
21+
fn main() {
22+
let x = &0;
23+
let mut conflict = Repro;
24+
let prev = conflict.get();
25+
conflict.insert(*prev + *x);
26+
//~^ WARN cannot borrow `conflict` as mutable because it is also borrowed as immutable
27+
//~| WARN this borrowing pattern was not meant to be accepted
28+
}

src/test/ui/nll/lint-no-err.stderr

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
warning: cannot borrow `conflict` as mutable because it is also borrowed as immutable
2+
--> $DIR/lint-no-err.rs:25:5
3+
|
4+
LL | let prev = conflict.get();
5+
| -------------- immutable borrow occurs here
6+
LL | conflict.insert(*prev + *x);
7+
| ^^^^^^^^^^^^^^^^-----^^^^^^
8+
| | |
9+
| | immutable borrow later used here
10+
| mutable borrow occurs here
11+
|
12+
= note: `#[warn(mutable_borrow_reservation_conflict)]` on by default
13+
= warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future
14+
= note: for more information, see issue #59159 <https://github.com/rust-lang/rust/issues/59159>
15+
16+
warning: 1 warning emitted
17+

0 commit comments

Comments
 (0)