]> git.lizzy.rs Git - rust.git/blob - src/test/ui/borrowck/promote-ref-mut-in-let-issue-46557.rs
Auto merge of #53002 - QuietMisdreavus:brother-may-i-have-some-loops, r=pnkfelix
[rust.git] / src / test / ui / borrowck / promote-ref-mut-in-let-issue-46557.rs
1 // Copyright 2014 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 // Test that we fail to promote the constant here which has a `ref
12 // mut` borrow.
13
14 fn gimme_static_mut_let() -> &'static mut u32 {
15     let ref mut x = 1234543; //~ ERROR
16     x
17 }
18
19 fn gimme_static_mut_let_nested() -> &'static mut u32 {
20     let (ref mut x, ) = (1234543, ); //~ ERROR
21     x
22 }
23
24 fn gimme_static_mut_match() -> &'static mut u32 {
25     match 1234543 {
26         ref mut x => x //~ ERROR
27     }
28 }
29
30 fn gimme_static_mut_match_nested() -> &'static mut u32 {
31     match (123443,) {
32         (ref mut x,) => x, //~ ERROR
33     }
34 }
35
36 fn gimme_static_mut_ampersand() -> &'static mut u32 {
37     &mut 1234543 //~ ERROR
38 }
39
40 fn main() {
41 }