mirror of https://github.com/rust-lang/rust
30 lines
645 B
Rust
30 lines
645 B
Rust
// 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() {}
|