13 fn make_foo() -> Foo { panic!() }
15 fn borrow_same_field_twice_mut_mut() {
16 let mut foo = make_foo();
17 let bar1 = &mut foo.bar1;
18 let _bar2 = &mut foo.bar1; //~ ERROR cannot borrow
22 fn borrow_same_field_twice_mut_imm() {
23 let mut foo = make_foo();
24 let bar1 = &mut foo.bar1;
25 let _bar2 = &foo.bar1; //~ ERROR cannot borrow
29 fn borrow_same_field_twice_imm_mut() {
30 let mut foo = make_foo();
32 let _bar2 = &mut foo.bar1; //~ ERROR cannot borrow
36 fn borrow_same_field_twice_imm_imm() {
37 let mut foo = make_foo();
39 let _bar2 = &foo.bar1;
43 fn borrow_both_mut() {
44 let mut foo = make_foo();
45 let bar1 = &mut foo.bar1;
46 let _bar2 = &mut foo.bar2;
50 fn borrow_both_mut_pattern() {
51 let mut foo = make_foo();
53 Foo { bar1: ref mut _bar1, bar2: ref mut _bar2 } => {}
57 fn borrow_var_and_pattern() {
58 let mut foo = make_foo();
59 let bar1 = &mut foo.bar1;
61 Foo { bar1: ref mut _bar1, bar2: _ } => {} //
62 //~^ ERROR cannot borrow
67 fn borrow_mut_and_base_imm() {
68 let mut foo = make_foo();
69 let bar1 = &mut foo.bar1.int1;
70 let _foo1 = &foo.bar1; //~ ERROR cannot borrow
71 let _foo2 = &foo; //~ ERROR cannot borrow
75 fn borrow_mut_and_base_mut() {
76 let mut foo = make_foo();
77 let bar1 = &mut foo.bar1.int1;
78 let _foo1 = &mut foo.bar1; //~ ERROR cannot borrow
82 fn borrow_mut_and_base_mut2() {
83 let mut foo = make_foo();
84 let bar1 = &mut foo.bar1.int1;
85 let _foo2 = &mut foo; //~ ERROR cannot borrow
89 fn borrow_imm_and_base_mut() {
90 let mut foo = make_foo();
91 let bar1 = &foo.bar1.int1;
92 let _foo1 = &mut foo.bar1; //~ ERROR cannot borrow
96 fn borrow_imm_and_base_mut2() {
97 let mut foo = make_foo();
98 let bar1 = &foo.bar1.int1;
99 let _foo2 = &mut foo; //~ ERROR cannot borrow
103 fn borrow_imm_and_base_imm() {
104 let mut foo = make_foo();
105 let bar1 = &foo.bar1.int1;
106 let _foo1 = &foo.bar1;
111 fn borrow_mut_and_imm() {
112 let mut foo = make_foo();
113 let bar1 = &mut foo.bar1;
114 let _foo1 = &foo.bar2;
118 fn borrow_mut_from_imm() {
119 let foo = make_foo();
120 let bar1 = &mut foo.bar1; //~ ERROR cannot borrow
124 fn borrow_long_path_both_mut() {
125 let mut foo = make_foo();
126 let bar1 = &mut foo.bar1.int1;
127 let _foo1 = &mut foo.bar2.int2;