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 #![feature(generators, generator_trait)]
13 use std::ops::{GeneratorState, Generator};
16 unsafe fn reborrow_shared_ref(x: &i32) {
17 // This is OK -- we have a borrow live over the yield, but it's of
18 // data that outlives the generator.
27 unsafe fn reborrow_mutable_ref(x: &mut i32) {
28 // This is OK -- we have a borrow live over the yield, but it's of
29 // data that outlives the generator.
38 unsafe fn reborrow_mutable_ref_2(x: &mut i32) {
39 // ...but not OK to go on using `x`.
45 println!("{}", x); //~ ERROR