]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/borrowck-uniq-via-ref.rs
rustdoc: Replace no-pretty-expanded with pretty-expanded
[rust.git] / src / test / run-pass / borrowck-uniq-via-ref.rs
1 // Copyright 2012 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.
4 //
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.
10
11
12 // pretty-expanded FIXME #23616
13
14 struct Rec {
15     f: Box<int>,
16 }
17
18 struct Outer {
19     f: Inner
20 }
21
22 struct Inner {
23     g: Innermost
24 }
25
26 struct Innermost {
27     h: Box<int>,
28 }
29
30 fn borrow(_v: &int) {}
31
32 fn box_mut(v: &mut Box<int>) {
33     borrow(&**v); // OK: &mut -> &imm
34 }
35
36 fn box_mut_rec(v: &mut Rec) {
37     borrow(&*v.f); // OK: &mut -> &imm
38 }
39
40 fn box_mut_recs(v: &mut Outer) {
41     borrow(&*v.f.g.h); // OK: &mut -> &imm
42 }
43
44 fn box_imm(v: &Box<int>) {
45     borrow(&**v); // OK
46 }
47
48 fn box_imm_rec(v: &Rec) {
49     borrow(&*v.f); // OK
50 }
51
52 fn box_imm_recs(v: &Outer) {
53     borrow(&*v.f.g.h); // OK
54 }
55
56 pub fn main() {
57 }