1 // Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
11 // compile-flags: -Z borrowck=mir -Z two-phase-borrows
13 // This is similar to two-phase-reservation-sharing-interference.rs
14 // in that it shows a reservation that overlaps with a shared borrow.
16 // Currently, this test fails with lexical lifetimes, but succeeds
17 // with non-lexical lifetimes. (The reason is because the activation
18 // of the mutable borrow ends up overlapping with a lexically-scoped
19 // shared borrow; but a non-lexical shared borrow can end before the
20 // activation occurs.)
22 // So this test is just making a note of the current behavior.
24 #![feature(rustc_attrs)]
27 fn main() { //~ ERROR compilation successful
28 let mut v = vec![0, 1, 2];
33 assert_eq!(v, [0, 1, 2, 3]);